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

Printed on: April 25, 2024 at 06:04 o'clock

Member: SlainteMhath
SlainteMhath Feb 19, 2010 at 10:02:14 (UTC)
Goto Top
Moin,

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

lg,
Slainte
Member: schlumpfinchen
schlumpfinchen Feb 19, 2010 at 10:07:46 (UTC)
Goto Top
Hi Slainte,

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

lg
Member: Snowman25
Snowman25 Feb 19, 2010 at 10:08:45 (UTC)
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"  
Member: schlumpfinchen
schlumpfinchen Feb 19, 2010 at 10:18:59 (UTC)
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...
Member: Snowman25
Snowman25 Feb 19, 2010 at 10:27:13 (UTC)
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
Member: schlumpfinchen
schlumpfinchen Feb 19, 2010 at 10:45:09 (UTC)
Goto Top
danke snow,

jetzt hab ich's gecheckt und es funktioniert!!

vielen dank für die hilfe