我需要添加什么才能忽略包含带 .exe 扩展名的 AppData 的文件名?我在 SetupComplete.cmd 中使用它来进行无人值守的 Windows 安装,并且有 AppDataLocal.exe 和 AppDataRoaming.exe,它们是 sfx 存档,我不想删除它们。我希望这可以是一个通配符,类似于 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"
我通过 FINDSTR 管道传递递归 DIR /B,使用一对正则表达式排除以“.reg”或“\AppData*.exe”结尾的文件名(忽略大小写)。结果通过 FOR /F 迭代,因此我可以删除每个文件。