2016-10-07 49 views
0

我遇到了新Sierra更新的一些安裝問題。
我想運行一個腳本來檢查版本號並刪除基於版本號,因爲我有很多運行錯誤的安裝,這是造成很多問題的客戶有一定的.mpkg文件。我已經嘗試了這個代碼的多個版本,沒有任何東西可以工作。我在AppleScript控制檯中的結果是:「」。
任何幫助將不勝感激。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

你的第一個考驗就是可能永遠不會真的因爲版本是從來沒有「10.12」。我猜版本是「10.12.xx」。而不是'是平等的',你應該使用'包含'。那麼腳本將爲任何「xx」值創建版本10.12。 – pbell

+0

謝謝你的建議。我接受了你的建議,仍然得到了同樣的結果。 'rm'指令中的 –

+1

,-f選項設置爲不顯示任何消息,即使要刪除的文件不存在。所以如果文件不存在,你就不會出錯。我會驚訝的是,文件「第1步Installer.mpkg」存在於你的硬盤驅動器的根目錄..這可能是原因。 – pbell

回答

1

的問題是,當你運行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命令。因此,如果出現問題,它可能會非常錯誤。在你不關心的系統上進行測試。

+0

謝謝你的幫助! –

相關問題