2011-08-30 97 views
0

我需要幫助將這個簡單的shell腳本轉換爲蘋果腳本。如何將bash的命令替換和管道轉換爲Applescript?

重點是因爲它要在Automator工作流程中使用,所以我需要打開終端窗口,這是無法使用shell腳本完成的。

shell腳本如下:

java -classpath `dirname "$1"` `basename "$1" | sed "s/.class//g"` 

此獲取文件的位置,然後將該文件的名稱,然後除掉的「的.class」文件擴展名,然後運行它使用Java命令。因此,例如,它會生成以下命令:

java -classpath /users/desktop/ filename 

我需要這個命令轉換,使之與AppleScript的工作,這樣我就可以看到在終端窗口的應用程序運行。它將開始如下:

on run {input, parameters} 
    tell application "Terminal" 
     activate 
     do shell script "java -classpath path/to/ file" 
    end tell 
end run 

如何將文本轉換移植到Applescript?

回答

2

我看到的唯一問題(現在)是將do shell script更改爲do script。除此之外,你已經開始正確。我假設你想將(一個)文件引用傳遞給shell腳本。這是相當簡單的...

set these_files to (choose file with multiple selections allowed) 
repeat with this_file in these_files 
    tell application "Finder" to if the name extension of this_file is "class" then my do_shell_script(this_file) 
end repeat 

on do_shell_script(this_file) 
    tell application "Terminal" to activate --makes 'Terminal' the frontmost application 
    --'do shell script ...' goes here 
    --To refer to a file/folder for a 'do shell script', do something like the command below... 
    --do shell script "mdls -name kMDItemLastUsedDate " & quoted form of the POSIX path of this_file 
end do_shell_script 
+1

記得使用引用形式的posix路徑 – Flambino

+0

@Flambino WOW我沒有看到。謝謝,我會解決它。 :d – fireshadow52

-1

我不知道的AppleScript所有,但我想你可以簡單地調用現有的shell腳本在do shell script線,而不是試圖重做的AppleScript字符串處理。

注意:
它看起來像你希望能夠通過點擊(或拖放或類似)來調用Java類。您的方法只適用於匿名包中的類,即在源代碼的開頭沒有任何package ...;聲明。對於其他人,你可以試着找出他們是哪個包。我不知道如何做到這一點。可分發的程序應該在jar檔案中,無論如何,你應該可以用java -jar ...開始它。)