.exe 拡張子の AppData を含むファイル名も無視するには、何を追加する必要がありますか? 無人 Windows セットアップ用の SetupComplete.cmd でこれを使用しており、sfx アーカイブである AppDataLocal.exe と AppDataRoaming.exe があり、これらを削除したくありません。これがワイルドカード (AppData*.exe など) になることを期待しています。
forfiles /p "%WINDIR%\Setup\Files" /s /m *.* /c "cmd /c for %G in (@path) do @if /I [%~xG] neq [.reg] @echo del /F /Q %G" /d
答え1
FORFILES を使用する理由がわかりません。非常に遅いからです。
私は次のようなことをします:
@echo off
for /f "delims=" %%F in (
'dir /b /s /a-d "%WINDIR%\Setup\Files"^|findstr /rive "\.reg [\\]AppData[^\\]*\.exe"'
) do del "%%F"
再帰的な DIR /B を FINDSTR にパイプし、大文字と小文字を区別せずに「.reg」または「\AppData*.exe」で終わるファイル名を除外する正規表現のペアを使用します。結果は FOR /F によって反復され、各ファイルを削除できます。