Mac中文件操作的自动化执行(重命名、复制、删除)

环境

脚本语言: AppleScript 2.7


问题描述

说明:本文所述问题在Android Studio中应该有直接实现的方法(猜想应该gradle能实现),但暂不了解,而且摸索可能耗时较久,影响项目进度,所以先用最简单方式解决。后续有了直接实现方法后再更新。

因应项目需要,每次项目A生成新的动态库后,先要重命名,然后拷贝替换项目B中原有动态库。手动操作十分麻烦。遂尝试使用Mac 脚本语言AppleScript自动化这一步骤。


操作步骤

这里按照创建迭代思路来描述。每一步都是先想实现的功能,然后再百度查找博文。

1 初始版本

起初不熟悉,仅尝试使用脚本打开对应文件所在的文件夹。

在脚本编辑器中输入以下代码,保存后打开运行即可。

tell application "Finder"
	open folder "Macintosh HD:work:APPProject:app:libs"
end tell

这里打开的是 Macintosh HD 盘符下面的 /work/APPProject/app/libs 文件夹
获取文件夹所在路径的方式,参照在我第一篇AppleScript文章。

2 尝试重命名

百度得到重命名方法,测试通过。

tell application "Finder"
		#重命名源文件
		set name of document file "app-release.aar" of folder "Macintosh HD:work:APPProject:app:libs" to "cam.aar"
	end if
end tell

从上面的方法中,知道一种定位文档的格式是” file xxx of folder xxxx ".
同时从博文中看到官方文档中有介绍可使用命令的说明,知道了拷贝和删除操作,进而到第三步。

3 拷贝、删除

这里觉得文件夹过于冗长,应该有设置别名或变量名方法,同样应该有注释语句,再次百度得到。进而得到如下

tell application "Finder"
	#设置别名
	set sourceFolder to "Macintosh HD:Users:lx:Documents:work:sdk:app:build:outputs:aar"
	set destinationFolder to "Macintosh HD:Users:lx:Documents:work:APPProject:app:libs"
	
	#重命名源文件
	set name of document file "app-release.aar" of folder sourceFolder to "cam.aar"
		
	#删除目标文件 并将源文件拷贝到目标文件夹
	delete file "cam.aar" of folder destinationFolder
	copy file "cam.aar" of folder sourceFolder to folder destinationFolder
		
	#删除源文件
	delete file "cam.aar" of folder sourceFolder
end tell

运行这个脚本,在源文件存在时,能正常运行。但假如文件不存在,则会报错。因此添加判空语句

4 判空

查看官方文档,查到 exists 命令,参考示例,得到添加了判空的脚本。

tell application "Finder"
	#设置别名
	set sourceFolder to "Macintosh HD:Users:lx:Documents:work:sdk:app:build:outputs:aar"
	set destinationFolder to "Macintosh HD:Users:lx:Documents:work:APPProject:app:libs"
	
	if (exists file "app-release.aar" of folder sourceFolder) then
		#重命名源文件
		set name of document file "app-release.aar" of folder sourceFolder to "cam.aar"
		
		#删除目标文件 并将源文件拷贝到目标文件夹
		delete file "cam.aar" of folder destinationFolder
		copy file "cam.aar" of folder sourceFolder to folder destinationFolder
		
		#删除源文件
		delete file "cam.aar" of folder sourceFolder
	end if
end tell

运行测试正常。
将文件保存在对应项目下,名称为 autorun.scpt。

5 自动化

上面虽然能够正常执行了,但需要打开这个文件,然后点击执行,还是麻烦。想着要是能想Window 的 bash 脚本,双击直接运行就更好了。继续百度,得到了 osascript 命令。
同时希望这个文件可以放置在任意位置,所以需要用到 cd 命令。
参照参考资料所列博文,建立了如下文档

#!/bin/bash
cd /Users/lexinxingye/Documents/work/project/macscript
osascript autorun.scpt

好了,现在把这个文档放在桌面上,要执行时,双击即可。
另外,也可以将autorun.scpt导出为应用程序,保存后也是双击即可运行。


参考资料

[1] Apple 官方文档。打开脚本编辑器后,在任务栏帮助中能进入。每个命令都会有示例
[2] CSDN博客-如何建立双击可执行脚本
[3] CSDN 和 简书 中若干篇关于AppleScript的较全面的文档。

猜你喜欢

转载自blog.csdn.net/dpdcsdn/article/details/106800958