descompactação recursiva de 7zip funcionando bem no CMD, mas não no lote

2

Estou usando este comando abaixo para descompactar recursivamente da pasta de origem ( D:\cnosftp\ ) e colocar o arquivo extraído na mesma subpasta.

FOR /R "D:\cnosftp\" %I IN (*.gz) DO "C:\Program Files-Zipz.exe" x "%I" -aoa -o"%~dpI"

Isso está funcionando bem quando executado no CMD - mas quando o mesmo comando é colocado em um arquivo em lote e executado - ele dispara, mas fecha em um blip sem qualquer ação. Alguma ideia do que estou fazendo aqui? Ou qualquer um pode dizer como envolvê-lo em um arquivo de lote.

    
por suyash sikarwar 02.09.2018 / 04:58

1 resposta

0

Em vez disso, tente executar:

FOR /R "D:\cnosftp\" %I IN (*.gz) DO echo "C:\Program Files-Zipz.exe" x "%I" -aoa -o"%~dpI"

Certifique-se de que a saída é o que você espera.

Dica: provavelmente não será. Substitua% por %% conforme necessário. (Se dois% não funcionarem, tente três ou quatro, mas acho que dois podem ser suficientes.)

O problema provável é que o comando FOR pode precisar de% extra quando executado a partir de um arquivo em lotes. Usando o comando echo, para mostrar qual comando você realmente estará executando, geralmente ajudará a determinar quais variáveis estão expandindo a maneira que você deseja / precisa, e quais variáveis precisam de% s adicionadas.

    
por 02.09.2018 / 05:17