zaknafein
Goto Top

Automatisiertes Durchsuchen von Unterordnern und löschen des Inhalts

Hallo Zusammen,
ich habe folgendes Problem und hoffe ich finde hier jemanden der mir helfen kann.

Die Ausgangssituation:
Ich habe einen Ordner (z.B. Profile). Dort drin befinden sich mehrere Unterordner, für jeden User einen (Userproifl XY).
Innerhalb dieses Ordners Userprofil XY befindet sich der Ordner "Cookies".

Zielsetzung:
Ein Script das jeden Ordner unterhalb des Ordners "Profile" durch geht und den Inhalt des darin befindlichen ordners "Cookies" löscht.

Problem:
Ich hab wenig bis gar keine Ahnung von Batchprogrammierung und finde nichts passendes bei Google. Um mich ausführlich in Batch-Programmierung einzuarbeiten fehlt mir die Zeit. Und ein ausweichen auf eine andere Sprache wie z.B. Perl ist ungünstig, da das Script unter Windows 2003 Server laufen soll ohne zusätzliche Dinge installieren zu müssen.


Ist irgendwo hier ein jemand der hier vllt. schonmal das gleiche Problem hatte und mir die nötigen Code-Schnipsel zur Verfügung stellen kann?

Content-ID: 80250

Url: https://administrator.de/forum/automatisiertes-durchsuchen-von-unterordnern-und-loeschen-des-inhalts-80250.html

Ausgedruckt am: 22.04.2025 um 09:04 Uhr

schregi82
schregi82 08.02.2008, aktualisiert am 18.10.2012 um 18:35:22 Uhr
Goto Top
Hatte kürzlich eine ähnliche Anforderung
(Inhalt von verschiedenen gleichnamigen Ordnern löschen)

Bei dir könnte dies dann so aussehen (ungestet)
set log=cookiedir.log
dir /b /s /a:d <dein zielverzeichniss> | find /i "cookie">%log%  
for /f %%a IN (%log%) do echo j | del %%a\*.*

lg,
Zaknafein
Zaknafein 08.02.2008 um 12:52:18 Uhr
Goto Top
Schon mal vielen Dank, leider funktioniert es noch nicht ganz so wie es soll.
vllt kannst du ja mal kurz drüber schaun wo da mein logikfehler liegt :


SET log=C:\cookie.log
dir /b /s /a:d <C:\Profile\> | find /i "cookies">%log%
for /f %%a IN (%log%) do echo j | del %%a\*.*
Pause

mir ist noch unklar wie er unter Profile in die einzelnen user-verzeichnisse absteigt und dort nach dem ordner "cookies" sucht.
ebenfalls schreibt er nix ins logfile. und "pause" scheint er auch zu ignorieren. Die "Dos-Box" bleibt nicht offen ...
Biber
Biber 08.02.2008 um 16:28:32 Uhr
Goto Top
Moin Zaknafein,

die "<" und ">"-Zeichen rund um "c:\Profile" hast Du aber nicht wirklich mit eingegeben, oder?

die sollten nur als Platzhalter dienen - gehören nicht in die Sourcecodezeile.

Grüße
Biber
Zaknafein
Zaknafein 11.02.2008 um 14:51:02 Uhr
Goto Top
Danke schonmal für den Tipp, schon siehts ganz anders aus

Also hier ist mal mein Code:
SET log=D:\Documents and Settings\dtheuerk\Desktop\profile\cookie.log
dir /b /s /a:d D:\Documents and Settings\dtheuerk\Desktop\profile | find /i "cookies">%log%
for /f %%a IN (%log%) do echo j | del %%a\*.*
Pause
Und das gibt die Box aus:

d:\Documents and Settings\dtheuerk\Desktop\profile>SET log=D:\Documents and Sett
ings\dtheuerk\Desktop\profile\cookie.log

d:\Documents and Settings\dtheuerk\Desktop\profile>dir /b /s /a:d D:\Documents a
nd Settings\dtheuerk\Desktop\profile | find /i "cookies" and Settings\dtheuerk
\Desktop\profile\cookie.log 1>D:\Documents
Das System kann den angegebenen Pfad nicht finden.
Datei AND nicht gefunden
Datei SETTINGS\DTHEUERK\DESKTOP\PROFILE\COOKIE.LOG nicht gefunden

d:\Documents and Settings\dtheuerk\Desktop\profile>for /F %a IN (D:\Documents an
d Settings\dtheuerk\Desktop\profile\cookie.log) do echo j | del %a\*.*
Die Datei "and" kann nicht gefunden werden.

d:\Documents and Settings\dtheuerk\Desktop\profile>Pause
Drücken Sie eine beliebige Taste . . .

Scheinbar hat er hier ein Problem mit den leerzeichen bei "documents und settings". Gibts da irgendwie ein Zeichen das das Leerzeichen "ungültig" macht (doof beschrieben aber mir fällt nix anderes ein wie ichs ausdrücken soll
) ???
Zaknafein
Zaknafein 11.02.2008 um 15:01:39 Uhr
Goto Top
ok, lösung gefunden... habe den d:\docume~1\... genommen.
jetzt funktioniert auch das script wunderbar.
nun noch eine kleine "kosmetische" frage zwecks logfile:
D:\docume~1\dtheuerk\Desktop\profile\cookies
D:\docume~1\dtheuerk\Desktop\profile\a\cookies
D:\docume~1\dtheuerk\Desktop\profile\b\cookies
D:\docume~1\dtheuerk\Desktop\profile\c\cookies

er überschreibt bei jedem vorgang das logfile komplett. wie kann ich sagen das er die neuen informationen nur anhängt? gibt es eine möglichkeit noch eine uhrzeit und datum im logfile festzuhalten ?
schregi82
schregi82 11.02.2008 um 15:33:17 Uhr
Goto Top
echo %date% >> %log%
echo %time% >> %log%
dir /b /s /a:d "D:\docume~1\dtheuerk\Desktop\profile\cookies" | find /i "cookies" >> %log%  
for /f %%a IN (%log%) do echo j | del %%a\*.*