Batch - chame outro lote e execute-o

1

Estou tentando fazer com que alguns arquivos em lote funcionem.

O primeiro que eu tenho (que funciona) leva um .rar de uma unidade para outra e dá o mesmo nome aos arquivos colocados em rar e então copia um arquivo rename.bat para o destino.

@ECHO OFF
cd /d J:\xxx
set path=C:\Program Files\WinRAR
FOR /f "delims=" %%d IN ('DIR /B') DO md J:\xxx\%%~nd
FOR /f "delims=" %%d IN ('DIR /B') DO WinRAR a -m0 -ep -vn -v500000B "xxx\%%~nd\%%~nd.rar" "%%~fd"
cd /d J:\xxx
FOR /f "delims=" %%d IN ('DIR /B') DO copy J:\xxx\rename.bat J:\xxx\%%~nxd 
EXIT

O segundo chama rename.bat e o executa, mas funciona apenas parcialmente, pois chama o rename.bat, mas não executa apenas uma nova janela.

@ECHO OFF
cd /d J:\xxx
for /f "delims=" %%n IN ('DIR /B') DO start J:\xxx\%%~n\rename.bat
EXIT

e o rename.bat tem esta aparência:

for /f "Tokens=*" %%f in ('dir /l/b/a-d') do (rename "%%f" "%%f")

Esse trabalho só se eu executar os arquivos no diretório, mas não funcionaria quando chamado.

Alguém tem alguma ideia para que isso aconteça, já que estou perdida por boas ideias por enquanto.

Se isso pudesse ser feito em um único .bat, eu também adoraria isso.

    
por Thomas 09.01.2014 / 23:53

1 resposta

1

CALL BATCHFILE2.BAT fará exatamente o que você deseja, conforme explicado em

link

COMMAND /C BATCHFILE2.BAT também funcionaria, com desvantagens de possível consumo adicional de memória, conforme o link

    
por 10.01.2014 / 00:48

Tags