ループのバッチファイルに含まれるファイルが多すぎる

ループのバッチファイルに含まれるファイルが多すぎる

7-zip を使用してファイルを個別のアーカイブに圧縮するためにバッチ ファイルを使用しています。バッチ ファイルには次の行が含まれています:

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

残念ながら、CMDの性質上、この行は両方の*.xlsファイルを圧縮しますそして *.xlsx意図しないファイル。

-filesを無視するにはどうすればいいですか*.xlsx?

答え1

必要なのは、ファイル拡張子が何であるかをテストすることだけです

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

関連情報