Eu preciso de um .bat para compact.exe e ignorando os tipos de arquivo?

1

Estou usando o agendador de tarefas para executar um arquivo em lotes a intervalos de alguns dias para compactar arquivos em uma unidade de backup para adicionar mais arquivos a ele.

Isso é o que eu uso

H:
compact /c /s /i /exe:lzx
exit

Existe uma maneira de fazer isso e ignorar arquivos .7z por exemplo? Eu poderia adicionar .mp4 .mkv à lista para ignorar, já que esses arquivos geralmente são comprimidos de qualquer maneira.

obrigado

    
por ToxsickcitY 05.07.2018 / 18:42

1 resposta

0

Você pode usar um loop Para / R junto com alguns condicionais Se a lógica apenas compacte os arquivos se o arquivo A extensão NÃO é .7z usando algumas substituições simples do loop FOR para obter a extensão do arquivo de cada valor de nome de arquivo iterado processado pelo loop e especificando os nomes dos arquivos com o comando.

Script

set Src=H:\
for /r "%Src%" %%a IN (*) DO IF /I NOT [%%~Xa]==[.7z] compact /c /s /i /exe:lzx "%%~a"
::::for /r "%Src%" %%a IN (*) DO IF /I NOT [%%~Xa]==[.7z] IF /I NOT [%%~Xa]==[.mp4] IF /I NOT [%%~Xa]==[.mkv] compact /c /s /i /exe:lzx "%%~a"
exit

Mais recursos

  • FOR / R
  • SE
  • Substituições em lote (FOR /?)

    In addition, substitution of FOR variable references has been enhanced. You can now use the following optional syntax:

    %~nI        - expands %I to a file name only
    
  • Compacto

    Syntax
          COMPACT [/C | /U] [/S[:dir]] [/A] [ /I] [/F] [/Q] [filename [...]]
    
    Key
    
      filename  Specifies a pattern, file, or directory.
    
por 05.07.2018 / 19:40

Tags