2016-08-27 119 views
0

我已到處尋找,似乎無法找到任何適用於我的情況的事情,但可能我不知道我在哪裏犯錯。我提前道歉,如果我似乎之前沒有找到問題的所在這已經回答了..Bash exec缺少終止值

我的代碼拋出錯誤:

find: -exec: no terminating ";" or "+"

on run {input, parameters} 

tell application "Terminal" 
    activate 
    set filesString to "" 
    repeat with file_ in input 
     set filesString to filesString & " " & quoted form of (POSIX path of file_) 
    end repeat 
    {} 
    do script "MOVIES=/Volumes/MEDIA/Video; 
find \"$MOVIES\" -name '*.mkv' -exec sh -c 'ffmpeg -i \"$0\" -vcodec copy -acodec copy \"${0%%.mkv}.mp4\" ' ; " 

    end tell 
    return input 
end run 

我試圖使用自動工具來簡化轉換過程。希望這不是太複雜的解決方案。

更新:我似乎已經解決了以前的問題,但現在它拋出一個

sh: No such file or directory

下面的代碼工作獨自在終端,而不是通過自動機:

MOVIES=/Volumes/MEDIA/Video 
find "$MOVIES" -name '*.mkv' -exec sh -c 'ffmpeg -i "$0" -vcodec copy -acodec copy "${0%%.mkv}.mp4"' {} \; 

回答

1

你必須逃脫;(雙\因爲你的報價)查找結束時

do script "MOVIES=/Volumes/MEDIA/Video; 
find \"$MOVIES\" -name '*.mkv' -exec sh -c 'ffmpeg -i \"$0\" -vcodec copy -acodec copy \"${0%%.mkv}.mp4\" ' \\; " 
+0

完美的似乎已經修復它,但由於某種原因,它沒有找到存在的目錄...下面的代碼單獨在終端中工作,但不通過automator:'MOVIES = /卷/媒體/視頻\ n 找到「 $ MOVIES「-name'* .mkv'-exec sh -c'ffmpeg -i」$ 0「-vcodec copy -acodec copy」$ {0 %%。mkv} .mp4「'{} \;' – TeddyCode