netboarder
Goto Top

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

Content-ID: 11626

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

Ausgedruckt am: 17.11.2024 um 16:11 Uhr

Wolf666
Wolf666 08.06.2005 um 12:48:04 Uhr
Goto Top
Hi,

versuch mal TreeSize (http://jam-software.de/) - unter Windows Freeware). Vieleicht nutzt dir das etwas.
Biber
Biber 08.06.2005 um 12:56:17 Uhr
Goto Top
Na, für so'n bisschen Kram reicht ein Mini-Batch:

::---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
netboarder
netboarder 08.06.2005 um 15:02:41 Uhr
Goto Top
Hallo,

danke für die schnelle Antwort! Treesize ist sehr praktisch, bietet aber nicht wirklich die gewünschte Funktionalität.

findpath200 läuft gerade, ich berichte ob alles geklappt hat.

Super Danke!!!

Gruss

Netboarder
Biber
Biber 08.06.2005 um 15:56:18 Uhr
Goto Top
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]