Windows控制台-BAT兼容性

Windows控制台-BAT兼容性,windows,batch-file,ffmpeg,command-prompt,windows-console,Windows,Batch File,Ffmpeg,Command Prompt,Windows Console,我有一个命令行语句,当手动将它输入控制台时,它可以很好地工作,但是,当我将它放入bat文件时,它就不工作了 for %f in (*.flac) do ffmpeg -i "%f" -acodec alac "%~nf.m4a" 下面是我尝试运行bat文件时的错误消息 The following usage of the path operator in batch-parameter substitution is invalid: %~nf.m4a" 有办法解决这个问题吗? 该语句使用f

我有一个命令行语句,当手动将它输入控制台时,它可以很好地工作,但是,当我将它放入bat文件时,它就不工作了

for %f in (*.flac) do ffmpeg -i "%f" -acodec alac "%~nf.m4a"
下面是我尝试运行bat文件时的错误消息

The following usage of the path operator in batch-parameter
substitution is invalid: %~nf.m4a"
有办法解决这个问题吗?
该语句使用ffmpeg程序将flac文件转换为alac文件。

当解释批处理文件时,%%被替换为%,因此您的解决方案是将%f替换为%%f

谢谢,我必须替换所有的%符号,而不仅仅是%f。@Michael:不,只有FOR循环的参数前面必须有两个percents@jeb:该语句中的%不是都在for循环中吗?