Pfadtiefe auslesen
Hi all,
ich habe auf einem Netapp Fileserver diverse Shares angelegt in den die User
Daten ablegen können und auch selbst die Ordnerstrukturen erstellen.
Nun haben wir das Problem das sehr viele Unterverzeichnisse mit teilweise sehr langen
Verzeichnissnamen erstellt wurden.
Meine Aufgabe ist es einen Report zu erstellen in dem alle Verzeichnisse bzw. Pfade
aufgelistet werden die eine Pfadtiefe > 200 Zeichen enthalten.
Kennt jemand ein Tool oder ein Script das dies ermöglicht?
Wenn möglich sollte es auch von einem Windows Client zu bedienen sein es könnte also auch ein VB-Skript sein.
Danke und Grüsse
Netboarder
ich habe auf einem Netapp Fileserver diverse Shares angelegt in den die User
Daten ablegen können und auch selbst die Ordnerstrukturen erstellen.
Nun haben wir das Problem das sehr viele Unterverzeichnisse mit teilweise sehr langen
Verzeichnissnamen erstellt wurden.
Meine Aufgabe ist es einen Report zu erstellen in dem alle Verzeichnisse bzw. Pfade
aufgelistet werden die eine Pfadtiefe > 200 Zeichen enthalten.
Kennt jemand ein Tool oder ein Script das dies ermöglicht?
Wenn möglich sollte es auch von einem Windows Client zu bedienen sein es könnte also auch ein VB-Skript sein.
Danke und Grüsse
Netboarder
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 11626
Url: https://administrator.de/contentid/11626
Ausgedruckt am: 17.11.2024 um 16:11 Uhr
4 Kommentare
Neuester Kommentar
Hi,
versuch mal TreeSize (http://jam-software.de/) - unter Windows Freeware). Vieleicht nutzt dir das etwas.
versuch mal TreeSize (http://jam-software.de/) - unter Windows Freeware). Vieleicht nutzt dir das etwas.
Na, für so'n bisschen Kram reicht ein Mini-Batch:
alle gefundenen Pfade stehen in der Datei allpathsGT200.lst
Hope it Helps
Frank / der Biber aus Bremen
::---Inhalt findpath200.bat
@echo off
:: Aufruf findpath200 [Lw:]
for /F %%i in ('dir %1\ /aD /b /s') do call :loop %%i
goto end
:loop
set Fullpath=%1
if ("%Fullpath:~199,10%") GTR ("") echo %fullpath% >>allpathsGT200.lst
:end
::------ende findpath200.bat
alle gefundenen Pfade stehen in der Datei allpathsGT200.lst
Hope it Helps
Frank / der Biber aus Bremen
Moin, netboarder,
noch ein paar Anmerkungen
1) ich hab ja nicht behauptet, dass dieser Batch wahnsinnig schnell ist, oder? Aber wenn das eine einmalige Aktion ist, geht das wohl (schneller, als was in *.vbs zusammenzubraten)
2) wenn du das ganze tatsächlich lokal auf/von den Clients durchführen läßt, würde ich die Ausgabedatei Computername/LW-Spezifisch benennen und irgendwo auf ein zentrales Netzlaufwerk schreiben lassen.
Also aufbohren der Zeile "schreib mir die Pfade weg" in der Form:
if ("%Fullpath:~199,10%") GTR ("") echo %fullpath% >>%computername%_%Fullpath:~0,1%_pathsGT200.lst
dann schreibt er in "Workstation0815_C_pathsGT200.lst" etc..
und dann noch mal VOR %computername% ein Netzverzeichnis "\\server\abfragebatch\" oder so setzten.
Dann hast Du das ganze Geraffel zentral.
3) Es sollten dann natürlich nur lokale Laufwerke per Parameter abgefragt werden.
Ein Aufruf "findpath200.bat \\server\sharexy" geht dann in die Grütze *gg
4) Für Perfektionisten würde ich natürlich auch den Wert "200" als Pfadlänge nicht fest verdrahten, sondern als 2. optionalen Parameter einbauen.
Aber der Batch sollte nur als schnelle Skizze dienen.
Schönen Tach noch
Frank / der Biber aus Bremen
[Edit 11.1.2006]
Weil gerade in einem anderen Forum danach gefragt wurde:
Im Bereich "Batch & Shell" findet sich eine etwas besser strukturierte Variation des Themas.
[/Edit 11.1.2006]
[Edit 12.1.2007]
Ähmm... gemeint war ["11.1.2007"]
[/Edit 12.1.2007]
noch ein paar Anmerkungen
1) ich hab ja nicht behauptet, dass dieser Batch wahnsinnig schnell ist, oder? Aber wenn das eine einmalige Aktion ist, geht das wohl (schneller, als was in *.vbs zusammenzubraten)
2) wenn du das ganze tatsächlich lokal auf/von den Clients durchführen läßt, würde ich die Ausgabedatei Computername/LW-Spezifisch benennen und irgendwo auf ein zentrales Netzlaufwerk schreiben lassen.
Also aufbohren der Zeile "schreib mir die Pfade weg" in der Form:
if ("%Fullpath:~199,10%") GTR ("") echo %fullpath% >>%computername%_%Fullpath:~0,1%_pathsGT200.lst
dann schreibt er in "Workstation0815_C_pathsGT200.lst" etc..
und dann noch mal VOR %computername% ein Netzverzeichnis "\\server\abfragebatch\" oder so setzten.
Dann hast Du das ganze Geraffel zentral.
3) Es sollten dann natürlich nur lokale Laufwerke per Parameter abgefragt werden.
Ein Aufruf "findpath200.bat \\server\sharexy" geht dann in die Grütze *gg
4) Für Perfektionisten würde ich natürlich auch den Wert "200" als Pfadlänge nicht fest verdrahten, sondern als 2. optionalen Parameter einbauen.
Aber der Batch sollte nur als schnelle Skizze dienen.
Schönen Tach noch
Frank / der Biber aus Bremen
[Edit 11.1.2006]
Weil gerade in einem anderen Forum danach gefragt wurde:
Im Bereich "Batch & Shell" findet sich eine etwas besser strukturierte Variation des Themas.
[/Edit 11.1.2006]
[Edit 12.1.2007]
Ähmm... gemeint war ["11.1.2007"]
[/Edit 12.1.2007]