schlumpfinchen
Goto Top

Ordnerinhalt per Batch löschen - Komandos funktionieren, automatisiert aber nicht

Hallöchen wieder einmal,

ich möchte gerne per Scheduled Task den Inhlalt eines Ordners monatlich löschen (Unterordner und Files).
Nun habe ich zum Löschen der Ordner den Befehl

for /d %i in (meinPfad) do rd /s /q "%i"  

und zum Löschen der Files verwende ich

del /F /Q meinPfad


Händisch ausgeführt funktionieren diese Befehle einwandfrei.
Erstelle ich einen Scheduled Task, läuft dieser nicht.
Ich habe auch den Pfad in "Ausführen in" schon umgestellt, auf den Ordner wo das Batch-File liegt,
auf "C:\Documents and Settings\administrator" - funktioniert alles nicht.

Hat jemand eine Idee? Ich bin nun mit meinem Latein am Ende.

Danke und LG
Schlumpfinchen

Content-Key: 136367

Url: https://administrator.de/contentid/136367

Ausgedruckt am: 29.03.2024 um 08:03 Uhr

Mitglied: SlainteMhath
SlainteMhath 19.02.2010 um 11:02:14 Uhr
Goto Top
Moin,

mit was fuer Rechten läuft der geplante Task? LokalSystem oder benannter User?

lg,
Slainte
Mitglied: schlumpfinchen
schlumpfinchen 19.02.2010 um 11:07:46 Uhr
Goto Top
Hi Slainte,

der Task läuft mit einem eigens angelegten Task-User mit Domain Admin Rechten

lg
Mitglied: Snowman25
Snowman25 19.02.2010 um 11:08:45 Uhr
Goto Top
Zitat von @schlumpfinchen:
Nun habe ich zum Löschen der Ordner den Befehl
for /d %i in (meinPfad) do rd /s /q "%i"

for-Schleifen haben in batch-Abläufen eine geringfügig veränderte Syntax, du brauchst doppelte Prozentzeichen vor den Schleifenvariablen, also
for /d %%i in (meinPfad) do rd /s /q "%%i"  
Mitglied: schlumpfinchen
schlumpfinchen 19.02.2010 um 11:18:59 Uhr
Goto Top
Zitat von @Snowman25:
for-Schleifen haben in batch-Abläufen eine geringfügig veränderte Syntax, du brauchst doppelte Prozentzeichen vor
den Schleifenvariablen, also
for /d %%i in (meinPfad) do rd /s /q "%%i"  

warum funktioniert diese syntax dann? die ordner werden ja tatsächlich gelöscht, wenn ich den befehl händisch eingebe...
Mitglied: Snowman25
Snowman25 19.02.2010 um 11:27:13 Uhr
Goto Top
wie ich schon sagte gilt die veränderte Syntax NUR in Batch-abläufen. siehe hierzu auch die Hilfe des for-Befehls:

Microsoft Windows XP [Version 5.1.2600]
(C) Copyright 1985-2001 Microsoft Corp.

U:\>for /?
Runs a specified command for each file in a set of files.
[[...]]
To use the FOR command in a batch program, specify %%variable instead
of %variable.  Variable names are case sensitive, so %i is different
from %I.
[[...]]

Grund hierfür ist, dass der Batch-Interpreter eine Variable mit nur einem % sofort gegen den Wert ersetzt, wohingegen das in der FOR-Schleife zu Fehlern führt. Mit %% wird das ganze Richtig interpretiert

Gruß
Snow
Mitglied: schlumpfinchen
schlumpfinchen 19.02.2010 um 11:45:09 Uhr
Goto Top
danke snow,

jetzt hab ich's gecheckt und es funktioniert!!

vielen dank für die hilfe