Applescript从具有特殊字符和空格的目录中删除文件夹

时间:2016-10-07 17:37:53

标签: macos shell applescript

我遇到了一些新的Sierra更新安装问题 我想运行一个脚本来检查版本号并根据版本号删除某个.mpkg文件,因为我有很多客户运行错误的安装,这导致了很多问题。我已经尝试了这个代码的多个版本,似乎没有任何工作。我在Applescript控制台中的结果是:""。
任何帮助将不胜感激。

tell application "Finder"

    set os_version to do shell script "sw_vers -productVersion"

    if ((os_version as string) is equal to "10.12") then

    do shell script (" rm  -rf \"Step 1 Installer.mpkg\" ")

else

    do shell script (" rm -rf  \"Step 1 Installer (SIERRA ONLY).mpkg\" ")

end if
end tell

1 个答案:

答案 0 :(得分:1)

问题在于,当您运行rm命令时,您没有指定.mpkg文件所在的目录。它不会自动查找脚本所在的同一目录相反,它会查看脚本的工作目录,它似乎是/(即系统卷的顶层)。您可以使用path to me来获取脚本的路径,然后您需要将其转换为引用形式的POSIX路径以在shell中使用,然后获取父目录名称......这就是我想出的:< / p>

set scriptPath to POSIX path of ((path to me) as string)
do shell script "rm -Rf \"$(dirname " & (quoted form of POSIX path of (scriptFile)) & ")/Step 1 Installer.mpkg\""

(以及其他安装程序的类似变体)

警告:*我尚未对此进行全面测试,并且它包含rm -Rf命令。因此,如果出现问题,可能会出现非常错误。在你不关心的系统上进行测试。