如何设置批处理文件输出与bat文件目录相同

如何设置批处理文件输出与bat文件目录相同

我创建了一个.bat文件,可以使用它将 mp4 视频文件拖放到该文件上,以将 reddit 视频格式转换为 whatsapp 支持的格式。所有这些都使用ffmpeg
以下是该文件的代码.bat

"D:\Programas\ffmpeg\bin\ffmpeg.exe" -i "%~1" -vcodec libx264 -acodec aac ./out.mp4
PAUSE

如您所见,非常简单。
我唯一的问题在于./out.mp4命令部分,如果我从“下载”拖放文件,并且文件.bat位于Desktop,则out.mp4文件将创建在Downloads而不是Desktop

我怎样才能改变这种行为(除了将输出设置为/path/to/Desktop/out.mp4),以便我可以将 bat 文件移动到其他地方并仍然获得相同的预期行为?

谢谢。

答案1

好的,阅读手册后https://ss64.com/nt/syntax-args.html
章节名称: 与批处理脚本相关的链接

您可以使用%0“批处理文件路径”,
因此,针对这种特殊情况的解决方案是:

"D:\Programas\ffmpeg\bin\ffmpeg.exe" -i "%~1" -vcodec libx264 -acodec aac "%~dp0/out.mp4"
PAUSE

相关内容