【问题标题】:expected end of line but found unknown token预期行尾,但发现未知令牌
【发布时间】:2017-11-20 10:20:15
【问题描述】:

好的,经过几天的搜索,我来了。我是 ffmpeg、applescript 和终端的新手。

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

for f in *.flv; do ffmpeg -i "$f" -acodec libmp3lame -b:a 256k "${f%.flv}.mp3" && rm "$f"; done

查找所有flv文件,并将其转换为256比特率的mp3,然后删除原始文件。

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

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 代码的部分时,它会崩溃。错误显然与“$”有关,这些错误显示为错误,错误消息显示“预期行尾,但发现未知令牌”。请寻求一些帮助。我需要“$”,因为这些是循环用于重命名文件等的原因。

【问题讨论】:

    标签: terminal ffmpeg applescript


    【解决方案1】:

    使用 \"

    传递字符串时必须转义引号

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

    【讨论】:

    • 完美运行!我读过类似的东西,但我把斜线放在了错误的地方。谢谢。
    猜你喜欢
    • 2013-12-31
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 2022-10-18
    相关资源
    最近更新 更多