windows 的单个输入变量发送到 .bat

Single input variable for windows send to .bat

我想通过 ffmpeg 获取 framemd5,方法是右键单击一个文件,选择 "send to",然后选择 my.bat 文件。

使用它可以让我为目录中的每个文件制作 framemd5s:

for %%a in ("*.*") do C:\Users\bla\Downloads\avanti-092\Avanti-ffmpeg-GUI-092\ffmpeg\ffmpeg-20150513-git-51f6455-win64-static\ffmpeg-20150513-git-51f6455-win64-static\bin\ffmpeg.exe -i "%%a" -f framemd5 "%%~na.framemd5"pause

我只想 运行 将 bat 文件放在一个文件中,即我右击开始的那个文件。我不知道该用哪个变量。

Send-To 命令(在您的案例中是批处理文件)接收所选文件作为命令行参数,可以在批处理文件中使用 %1%2%3 等等。 %0 是批处理文件本身的(路径)。输入 call /? 获取更多信息。

要将其应用于单个文件,请使用 %1。此语法支持 ~ 修饰符,如 for 变量。例如,%~1 删除周围的双引号,%~n1 仅提取文件名。

对于您的批处理文件,您实际上不需要 for 命令(仅执行一次迭代)。

因此,以下应该有效:

C:\Users\bla\Downloads\avanti-092\Avanti-ffmpeg-GUI-092\ffmpeg\ffmpeg-20150513-git-51f6455-win64-static\ffmpeg-20150513-git-51f6455-win64-static\bin\ffmpeg.exe -i "%~1" -f framemd5 "%~n1.framemd5" & pause