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

Antworten auf die Frage(2)

Ihre Antwort auf die Frage