armafw
Goto Top

Batch Platzhalter für Ordner

Hi,

ich habe da ein Problem mit einem Script, bei dem ich nich so wirklich weiterkomme.

Folgende Struktur ist vorhanden:

F:\Home\User1\scan
F:\Home\User2\scan
F:\Home\User3\scan

Ich würde ganz gerne Inhalte im Scan Ordner, welche älter als 14 Tage sind, regelmäßig löschen.

Habe jetzt folgendes Script schon gefunden und angepasst, jedoch fehlt mir eine Variable für den übergeordneten Ordner (hier mit USER markiert).

Forfiles /P F:\Home\USER\Scan /S /M *.* /D -14 /C "cmd /c del /q @path"

Gibt es sowas?

Danke!

Content-Key: 203242

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

Printed on: April 18, 2024 at 07:04 o'clock

Member: MrNetman
MrNetman Mar 13, 2013 at 09:42:36 (UTC)
Goto Top
Hi Arma,

relative Verzeichniswechsel macht man mit Punkt und 2Punkt.
z.B.
dir . = dir *.*
für das aktuelle Verzeichnis und
dir .. für das übergeordnete Verzeichnis

Wenn du also in F:\Home\User1\scan bis, dann kannst du mit
dir .. den Inhalt des Verzeichnises F:\Home\User1 ausgeben lassen.

Das gilt selbstverständlich auch für andere Kommandos.

GRuß
Netman
Member: armafw
armafw Mar 13, 2013 updated at 10:06:57 (UTC)
Goto Top
Hi,

danke für die Antwort, aber das war nicht so ganz das, was ich gesuchth habe.

Ich glaub ich hab mich da etwas unklar ausgedrückt.

Die Verzeichnisstruktur ist so wie oben beschreiben (also der Unterordner Scan ist immer vorhanden, nur der Überordner ändert sich) und ich möchte jetzt ein Script schreiben, welches mir automatisch in allen User-Ordnern den Inhalt des Scan-Ordners löscht.

Gruß
Fabian
Member: volkerw
volkerw Mar 13, 2013 at 11:27:59 (UTC)
Goto Top
Hallo,

diese Schleife löscht alle Dateien in den Ordnern F:\home\*\scan:

FOR /F %%D IN ('DIR F:\home /a:d /b ') DO (
ECHO %%D
DEL /Q F:\home\%%D\scan\*.*
)

Gruß
Volker
Member: armafw
armafw Mar 13, 2013 at 12:23:16 (UTC)
Goto Top
Das wars, das Script sieht jetzt so aus:

FOR /F %%D IN ('DIR F:\home\ /a:d /b ') DO (
ECHO %%D
Forfiles /P F:\Home\\%%D\Scan /S /M *.* /D -14 /C "cmd /c del /q @path"
)

pause

und tut genau das, was es soll.

Danke für die Unterstützung!