我遇到了一些新的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
答案 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
命令。因此,如果出现问题,可能会出现非常错误。在你不关心的系统上进行测试。