Windows CMD - Set innerhalb der for-Schleife funktioniert nicht
Ich möchte eine Batch-Datei schreiben, die alle Verzeichnisse mit dem Sicherungsverzeichnis durchläuft und Dateien entfernt, die älter als X Tage sind. Auf dem Computer, auf dem ich mein Skript ausführen möchte, gibt es keinen "forfile" -Befehl. Da es keine PowerShell gibt, scheint CMD oder VBScripts nur eine Möglichkeit zu sein, diese Aufgabe zu erfüllen.
Momentan habe ich ein Problem mit der "set" -Anweisung - es scheint, als würde ich anrufen% checkpath% Ich habe den erwarteten Ordner nicht erhalten.
rem we will memorize current directory
pushd %cd%
set folder="C:\Documents and Settings\myname\Desktop"
cd %folder%
rem loop only folders with five chars within their names (unfortunately on less also
for /D %%g in (?????) DO (
set checkpath="%cd%\%%g\backup"
if exist %checkpath% (
for %%a in ('%%g\backup\*.*') do (
set FileDate=%%~ta
set FileDate=%%FileDate:~0,10%%
rem here I want to compare file modification data with current date
)
)
popd
pause