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-Key: 80250

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

Printed on: April 26, 2024 at 19:04 o'clock

Member: schregi82
schregi82 Feb 08, 2008, updated at Oct 18, 2012 at 16:35:22 (UTC)
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,
Member: Zaknafein
Zaknafein Feb 08, 2008 at 11:52:18 (UTC)
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 ...
Member: Biber
Biber Feb 08, 2008 at 15:28:32 (UTC)
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
Member: Zaknafein
Zaknafein Feb 11, 2008 at 13:51:02 (UTC)
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
) ???
Member: Zaknafein
Zaknafein Feb 11, 2008 at 14:01:39 (UTC)
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 ?
Member: schregi82
schregi82 Feb 11, 2008 at 14:33:17 (UTC)
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\*.*