Archivo por lotes para bucle que incluye demasiados archivos

Archivo por lotes para bucle que incluye demasiados archivos

Estoy usando un archivo por lotes para comprimir archivos en archivos separados usando 7-zip. El archivo por lotes contiene esta línea:

FOR %%A IN (*.xls) DO "c:\program files\7-zip\7z.exe" u -mx9 -m0=lzma2:d16m "%%~nA.7z" "%%A"

Desafortunadamente, debido a la naturaleza de CMD, esta línea comprime ambos *.xlsarchivos.y *.xlsxarchivos que no tengo intención.

¿Cómo consigo que ignore *.xlsxlos archivos?

Respuesta1

Todo lo que necesitas hacer es probar cuál es la extensión del archivo.

for %%A in (*.xls) do if /i "%%~xA"==".xls" (
    "c:\program files\7-zip\7z.exe" u -mx9 -m0=lzma2:d16m "%%~nA.7z" "%%A"
)

información relacionada