我遇到了一些安装问题与新的塞拉利昂更新。
我想运行一个脚本,它检查版本号并根据版本号删除某个.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发布于 2016-10-08 01:39:33
问题是,在运行rm命令时,没有指定.mpkg文件所在的目录。它不会自动查看脚本所在的同一个目录。相反,无论脚本的工作目录是什么,它看起来都是/ (即系统卷的顶层)。您可以使用path to me获取脚本的路径,然后需要将其转换为引用形式的POSIX路径,以便在shell中使用,然后获取父目录名.我想出的是:
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命令。因此,如果出了什么问题,它可能会非常糟糕。在你不关心的系统上测试。
https://stackoverflow.com/questions/39923015
复制相似问题