Jump to content

Tool/Skript um die Verzeichnistiefe auszulesen


PVIT
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Moin,

 

mein erster Beitrag hier im Forum - daher erst einmal ein herzliches Hallo!

 

Mein Anliegen:

 

Ich brauche ein Tool oder PS Skript, welches mir auf einem Ordner Dateien bzw. Ordnerstrukturen ausliest und in eine Datei schreibt, die eine vorher definierte Pfadlänge überschreiten.

Hintergrund: Einige User haben die NTFS Verzeichnistiefe gesprengt und es kommt nun zu Problemen (Verschieben von Dateien ist da noch das Kleinste).

 

Also, super wäre, wenn ich festlegen könnte: Alle Pfade/Dateien mit 250+ Zeichen mit komplettem Pfad in eine Datei schreiben. Dann würde ich den jeweiligen Abteilungsleitern die Liste in die Hand drücken und die müssen dann die Datei und Ordnernamen anpassen, um wieder ins Soll zu kommen.

 

Kennt jemand solch ein Tool oder Skript?

 

Danke schon mal für Eure Hilfe!

 

Beste Grüße

PVIT

Link zu diesem Kommentar

Moin,

 

dieses Skript habe ich irgendwo ausgegraben, es bricht aber entweder mit einem Fehler in Zeile 54, also dieser Variable ab "oLog.WriteLine Right(" " & CStr(Len(sPath)), 3) & " " & sPath"ab oder in Zeile 44 "Fehler der Pfad wurde nicht gefunden" bei dieser Varibale "For Each SubFolder In Folder.SubFolders".

 

 

Irgendeine Idee?

 

Danke und Gruß

PVIT

 

' ListLongPaths.vbs

 

Const sSTARTPATH = "H:\"

Const iLONG = 250

Const LOGFILEPATH = "H:\" 'Speicherort der Logdatei, falls nicht auf dem Desktop gespeichert werden soll

 

Set WShell = WScript.CreateObject("WScript.Shell")

sLogFilePath = WShell.SpecialFolders("Desktop")

'############

'sLogFilePath = LOGFILEPATH 'Um den oben festgelegten Speicherort zu verwenden, das Kommentarzeichen am Anfang der Zeile entfernen

'############

If Right(sLogFilePath, 1) <> "\" Then sLogFilePath = sLogFilePath & "\"

sLogFile = sLogFilePath & "LongPaths.txt"

 

Set fso = CreateObject("Scripting.FilesystemObject")

 

If WScript.Arguments.Count > 0 Then

sStart = WScript.Arguments(0)

Else

sStart = sSTARTPATH

End If

 

If Not fso.FolderExists(sStart) Then

WScript.Echo "Ordner " & sStart & " nicht gefunden!"

WScript.Quit

End If

 

bFound = False

Set oLog = fso.OpenTextFile(sLogFile, 2, True)

DoFolders fso.GetFolder(sStart)

oLog.Close

 

If bFound Then

R = MsgBox("Es wurde mindestens ein Pfad mit einer Länge > " & _

iLONG & " gefunden und in" & vbCrLF & _

"""" & sLogFile & """ gespeichert." & vbCrLF & vbCrLF & _

"Soll die Logdatei jetzt geöffnet werden?", vbYesNo)

If R = vbYes Then WShell.Run "notepad " & sLogFile

Else

MsgBox "Es wurden keine Pfade mit einer Länge > " & iLONG & " gefunden."

End If

 

Sub DoFolders(Folder)

For Each SubFolder In Folder.SubFolders

DoFolders SubFolder

If Len(SubFolder.Path) > iLONG Then List(SubFolder.Path & "\")

For Each File In SubFolder.Files

If Len(File.Path) > iLONG Then List(File.Path)

Next

Next

End Sub

 

Sub List(sPath)

oLog.WriteLine Right(" " & CStr(Len(sPath)), 3) & " " & sPath

bFound = True

End Sub

Link zu diesem Kommentar
Wenn man solch tief verschachtelten Ordner löschen muss, das aber mit Bordmitteln nicht kann hilft folgendes Tool ganz gut:

 

Deep Remove Folders Directories in Windows

 

 

Grüsse

 

Gulp

 

Ok, danke: Zum Löschen eine gute Sache - werde ich ausprobieren!

 

Was jetzt noch fehlt ist ein Tool zum Auslesen, um die Dateien zu finden, die die Pfadtiefe sprengen und sie umzubenennen, so dass es wieder passt.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...