Para corrigir isso, você pode usar substrings variáveis em lote para substituir os caracteres de barra invertida simples \
no valor de string do primeiro argumento com dois caracteres de barra invertida \
nesse valor de string. Você pode set
outra variável para ter o novo valor e usá-lo de acordo.
Script em lote
@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"
Note: The issue is likely the
mp4box
app expects full paths to use either double backslashes\
or single forward slashes/
due to the backslash character being an escape character it uses otherwise internally and thus using a single backslash it does not see the backslash literally.
Você pode usar para testar se também usa barras invertidas, bem como barras duplas invertidas.
SET a=%~1
SET a=%a:\=/%
SET dp=%~dp1
SET dp=%dp:\=/%