O arquivo em lote fornece "o sistema não pode encontrar o arquivo especificado", mas os comandos são executados corretamente em cmd

3

Estou tentando executar um arquivo em lote simples:

@echo off      <-- don't print this line or any of the preceeding lines to the console window.
pushd "K:\"    <-- in the quoted directory
for %%j in (*) <-- for every file in the directory
do
if %%~zj       <-- if the size of the file
lss 37000      <-- is less than 37k
del %%j        <-- delete the file
popd           <-- go back to original directory.

Eu começo a receber um erro no @echo off e pushd , mas se eu tentar o pushd in cmd.exe , ele será executado corretamente. Tenho certeza que estou sentindo falta de algo simples.

Alguma idéia?

    
por user241447 28.07.2013 / 18:57

1 resposta

3

Isso acontece quando você usa um programa para iniciar o arquivo em lotes e o arquivo em lote não está chamando cmd.exe / c primeiro. Não há pushd.exe, é um comando interno em cmd.exe. Mas quando seu programa chama seu arquivo de lote, ele está iniciando diretamente - não há cmd.exe. (Sim, isso é estranho).

A solução: Onde quer que você esteja executando isso, preceda-a com cmd.exe / c

Então, se você estiver executando deletelittlefiles.bat, altere-o para cmd.exe / c deletelittlefiles.bat.

Fonte: Sou gerente de laboratório de uma equipe de testes de software e nosso equipamento de teste pode, mas não precisa executar as coisas sem iniciá-las em cmd.exe.

    
por 29.07.2013 / 05:59