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
-
Syntax COMPACT [/C | /U] [/S[:dir]] [/A] [ /I] [/F] [/Q] [filename [...]] Key filename Specifies a pattern, file, or directory.