“-tmp” do MP4Box precisa de 2 barras invertidas

0

Estou no Windows 7 Ultimate SP1 x64, rodando MP4Box - GPAC versão 0.7.2-DEV-rev357-g7115eeb8-master.

Eu criei um arquivo BAT assim:

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

que funciona bem, mas antes de adicionar \ a %~dp1\ , ele forneceu o erro:

Error - 2 input names specified, please check usage

Por que é necessário que duas barras invertidas funcionem?

Se for importante, basta arrastar e soltar o vídeo e o áudio no arquivo BAT.

BTW, é %1#trackID=1:name= OK ou devo alterá-lo para este "%~1#trackID=1:name=" ?

    
por Derp 05.07.2018 / 16:05

1 resposta

0

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:\=/%

Mais recursos

por 05.07.2018 / 17:29