使用&&在Windows FileAssociation操作命令行中

时间:2017-08-31 09:58:26

标签: cmd ffmpeg registry

我可以使用标准Windows CMD shell中的&&连接在同一行上运行两个命令:

"C:\Program Files (x86)\ffmpeg\ffmpeg.exe" -i "%1" -write_xing 0 -ac 2 -ar 24000 -ab 48k -id3v2_version 3 -write_id3v1 1 "%1".mp3 && DEL /Q "%1"
  • 使用ffmpeg
  • 成功将输入文件转换为mp3输出文件后删除输入文件

但是当我将代码插入相应的RegEdit位置时,相同的代码行崩溃,例如:

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Applications\foobar2000.exe\shell\mp3\command]
@="\"C:\\Program Files (x86)\\ffmpeg\\ffmpeg.exe\" -i \"%1\" -write_xing 0 -ac 2 -ar 24000 -ab 48k -id3v2_version 3 -write_id3v1 1 \"%1\".mp3 && DEL /Q \"%1\" "

虽然它在我添加尾随&&子句之前工作正常。您可以通过右键单击上下文菜单项来运行它。

有没有办法在不创建额外的BAT / CMD文件的情况下实现此目的。我尝试在整行上放置( )括号,但它似乎改变了范围,不再找到输入文件。

1 个答案:

答案 0 :(得分:1)

在cmd &&中执行的

被识别为命令分隔符,但在注册表中可以将其视为litteral参数"&&"。也许以下可以提供帮助

%ComSpec% /C """C:\Program Files (x86)\ffmpeg\ffmpeg.exe"" -i ""%1"" -write_xing 0 -ac 2 -ar 24000 -ab 48k -id3v2_version 3 -write_id3v1 1 ""%1"".mp3 && DEL /Q ""%1"" "

编辑:从评论更新

CMD /C ("C:\Program Files (x86)\ffmpeg\ffmpeg.exe" -i "%1" -write_xing 0 -ac 2 -ar 24000 -ab 48k -id3v2_version 3 -write_id3v1 1 "%1".mp3 && DEL /Q "%1")