Script em lote usando o 7zip: Eu quero que os arquivos zip tenham o nome como o arquivo original

0

Eu tenho pouca experiência na criação de arquivos .bat - tenho vários arquivos .bak que preciso compactar - esse diretório obtém novos arquivos .bak que são baixados regularmente. Estou tentando configurar um trabalho que verifica todos os arquivos .bak e fecha-os, eu quero passar o nome do arquivo .bak para que o arquivo .zip tenha o mesmo nome que o arquivo .bak.

Então TestFile1.bak = TestFile1.zip, TestFile2.bak = TestFile2.zip ... etc

Eu tenho isso até agora e funciona para compactar apenas um único arquivo, ou ele fecha muitos arquivos .bak em um único arquivo.zip. Não consigo descobrir como passar o nome do arquivo .bak.

7aa -tzip "C: \ TestArchive \ AutoArchived \" "C: \ TestArchive *. *" -mx5

    
por BeratingMantis 08.12.2016 / 20:37

1 resposta

0

O que ajudaria você é o comando FOR.

for /f "delims=#" %%i in ('dir /b *.bak') do ( 
  echo now working on file %%i
  rem use %%i in the 7zip command to compress only one file
)

Isso fará o loop de todos os arquivos retornados pelo comando dir. Com cada loop, %% i conterá um arquivo que você poderá usar para o comando 7zip.

    
por 09.12.2016 / 17:39

Tags