Zusätzlichen Test für Dateien hinzufügen

Zusätzlichen Test für Dateien hinzufügen

Was müsste ich hinzufügen, um auch Dateinamen zu ignorieren, die AppData mit der Erweiterung .exe enthalten? Ich verwende dies in einem SetupComplete.cmd für eine unbeaufsichtigte Windows-Installation und habe AppDataLocal.exe und AppDataRoaming.exe, die SFX-Archive sind, und möchte diese nicht löschen. Ich hoffe, dies kann ein Platzhalter sein, so etwas wie 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

Antwort1

Ich sehe keinen Grund, FORFILES zu verwenden – es ist ziemlich langsam.

Ich würde ungefähr Folgendes tun:

@echo off
for /f "delims=" %%F in (
  'dir /b /s /a-d "%WINDIR%\Setup\Files"^|findstr /rive "\.reg [\\]AppData[^\\]*\.exe"'
) do del "%%F"

Ich leite ein rekursives DIR /B durch FINDSTR und verwende ein Paar regulärer Ausdrücke, um Dateinamen auszuschließen, die mit „.reg“ oder „\AppData*.exe“ enden, wobei ich die Groß- und Kleinschreibung ignoriere. Das Ergebnis wird über FOR /F iteriert, sodass ich jede Datei löschen kann.

verwandte Informationen