Terminal 应为行尾,但找到未知标记

Terminal 应为行尾,但找到未知标记,terminal,ffmpeg,applescript,Terminal,Ffmpeg,Applescript,好了,经过几天的搜索,我终于来了。我不熟悉ffmpeg、applescript和terminal 我想使用ffmpeg批量转换任何文件夹中的一组选定文件。通过在文件夹位置打开终端并使用以下代码,我成功地做到了这一点: for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done 它查找所有flv文件,并将其转换为256位速率的mp3,然后删除原始文件

好了,经过几天的搜索,我终于来了。我不熟悉ffmpeg、applescript和terminal

我想使用ffmpeg批量转换任何文件夹中的一组选定文件。通过在文件夹位置打开终端并使用以下代码,我成功地做到了这一点:

for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done
它查找所有flv文件,并将其转换为256位速率的mp3,然后删除原始文件

现在我希望它更加自动化,所以我考虑创建一个服务。我尝试通过automator运行一个apple脚本,我希望它在文件所在的文件夹位置打开终端,然后运行代码转换文件。以下是我尝试的代码:

tell application "Finder" to set currentFolder to target of front Finder window as text
set theWin to currentFolder's POSIX path

tell application "Terminal"
    if not (exists window 1) then reopen
    activate
    do script "cd " & quoted form of theWin & ";clear" in window 1
    tell application "Terminal"
        do script "for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done"
    end tell
end tell

代码的第一部分将在文件夹位置打开终端。但是当我添加带有ffmpeg代码的部分时,它崩溃了。错误显然是由“$”引起的,这些都是显示为错误的,错误消息显示“预期行结束,但找到未知标记”。请找人帮忙。我需要“$”,因为这是使循环能够重命名文件的原因。

当使用\传递字符串时,必须转义引号

这一行变成:
在*.flv中为f编写脚本;做ffmpeg-i\“$f\”-acodec libmp3lame-b:a 256k\“${f%.flv}.mp3\”&rm\“$f\”;完成“

当您使用\传递字符串时,必须转义引号”

这一行变成:
do script“for f in*.flv;do ffmpeg-i\“$f\”-acodec libmp3lame-b:a 256k\“${f%.flv}.mp3\”&rm\“$f\”done”

工作得非常好!我读到类似的东西,但我把斜线放错了地方。谢谢,很好用!我读到类似的东西,但我把斜线放错了地方。非常感谢。