MP4Box 的“-tmp”参数需要 2 个反斜杠

MP4Box 的“-tmp”参数需要 2 个反斜杠

我在 Windows 7 Ultimate SP1 x64 上,运行 MP4Box - GPAC 版本 0.7.2-DEV-rev357-g7115eeb8-master。

我创建了一个这样的 BAT 文件:

mp4box -add %1#trackID=1:name= -add %2#trackID=1:name= -tmp "%~dp1\" -new "%~n1_new.mp4"

工作正常,但在添加之前\出现%~dp1\错误:

Error - 2 input names specified, please check usage

为什么需要 2 个反斜杠才能工作?

如果它很重要,我只需将视频和音频拖放到 BAT 文件上。

顺便问一下,%1#trackID=1:name=可以吗或者我应该将其改为这样"%~1#trackID=1:name="

答案1

要解决这个问题,你可以使用批处理变量子串\将第一个参数的字符串值中的单个反斜杠字符替换\\为该字符串值中的两个反斜杠字符。您可以set另一个变量具有新值并相应地使用它。


批处理脚本

@ECHO OFF
SET a=%~1
SET a=%a:\=\\%
SET dp=%~dp1
SET dp=%dp:\=\\%

mp4box -add %a%#trackID=1:name= -add %2#trackID=1:name= -tmp "%dp%" -new "%~n1_new.mp4"
::::mp4box -add %1#trackID=1:name= -add %2#trackID=1:name= -tmp "%dp%" -new "%~n1_new.mp4"

笔记:问题可能是mp4box应用程序希望完整路径使用双反斜杠\\或单正斜杠,/因为反斜杠字符是转义字符它在内部使用其他方法,因此使用单个反斜杠时它不会从字面上看到反斜杠。

您可能能够使用它来测试它是否也使用正斜杠以及双反斜杠。

SET a=%~1
SET a=%a:\=/%
SET dp=%~dp1
SET dp=%dp:\=/%

更多资源

相关内容