Hallo!
Ich hab jetzt schon ein Weilchen erfolglos gegoogelt und ein paar Boards durchsucht.
Gibt es denn kein Tool, das mir für NTFS (und andere FS) rekursiv / für eine ganze Platte scannt, welche Dateinamen aufgrund Ihrer Gesamtlänge (also sämtliche Verzeichnisnamen + \ + Dateinamen + Endung) nicht mehr konform sind - also insgesamt mehr als 260(?) Zeichen haben.
Oder Bordmittel von XP Prof?
Jemand eine Idee?
1000end Dank!
Und bitte keine Predigten von wegen das sowas garnicht erst entstehen sollte. Die halte ich seit Jahren selber und es wächst trotzdem organisch :P
Grüße,
bestUnknown
[Diese Nachricht wurde nachträglich bearbeitet.]
Archiv Windows XP 25.916 Themen, 128.567 Beiträge
Wie können denn solche nicht-konformen Dateien erst entstehen? Würde Windows da nicht schon meckern?
"müsste" ist das Schlagwort.
Ich versuche noch, das herauszufinden.
Sehe derzeit drei Möglichkeiten: Entpacken von Archiven und Abspeichern von Downloads und nachträgliches umbenennen übergeordnerter Verzeichnisse.
Wenn ich in der xten Ebene ein Archiv mit nochmal einem Verzeichnis und einigen aufsatzmäßig langen Dateinamen entpacke möglicherweise.
Aber ganz allgemein ist es doch so: Wenn Du wissen willst, was ein System / eine Technik / eine Prozedur wirklich taugt, dann lass ein paar technisch *völlig* unbegabte eine Weile damit arbeiten. Danach kannst Du dann die Schweben einsammeln. Das beste Betatesting ist ein verfrühtes Rollout :)
[Diese Nachricht wurde nachträglich bearbeitet.]
Hallo,
mit ein bisschen Weiterung könnte das hier einen Ansatz bieten!
Gruss
ElBlindo
Hi ElBlindo.
Danke Dir. Das hat mich dazu gebracht einen Workaround zu preobieren, der mir schon im Kopf herumgegeistert ist, aber noch nicht an meinem Inneren-Schweinehund-Zerberus vorbeikam.
Leider hab' ich zu wenig VBS drauf um das Skrit anzupassen, das dort erwähnt wird.
Mein Workaround sieht so aus:
1) Tief Luft holen
2) Eine Minute an etwas schönes und friedliches denken um zu vergessen, wie oft man Namenskonventionen gepredigt hat.
3) Das Tool "DirTree" von http://www.wurzeldrei.de/ herunterladen.
4) Mit selbigem das Verzeichnis genau so ansteuern, wie es auch in Gebrauch ist.
5) Option "Alle Dateien zuammen mit ihren Pfaden in ein Feld schreiben" (wichtig!) und ohne HTML auswählen.
6) Das ergebnis als Textdatei speichern.
7) Selbige in einem gescheiten Editor und mit einer PROPORTIONALEN SCHRIFTART (!) betrachten. Z.B. CrimsonEditor von http://www.crimsoneditor.com/.
8) Beim längsten Eintrag der einem auffällt an's Ende der betreffenden Zeile springen und (in dem Fall) rechts unten nachsehen, welche Zeichenposition dies ist => Gesamtlänge des Dateinamens
9) Nun den Rest der Datei durchscrollen und schauen ob ein anderer Eintarg vielleicht noch weiter nach rechts geht.
10) punkte 8-9 so lange wiederholen, bis sicher ist, das keiner der Einträge mehr als 255(260?) Zeichen hat.
Vorschlag zur automatisierung: Schafft euch Praktikanten an.
Hat denn noch keiner ein Tool für sowas geschrieben? Wäre echt ein Ansporn eine Hochsprache zu lernen.
Hallo nochmal,
also vbs ist so schwer nicht zu lernen, der versuch ist es wert. Es gibt auch viele code-Schnipsel, die schon gute Ideen liefern.
Eine wäre, ein schon vielfach vorhandenes Codefragment, die recursive Suche nach Dateien inklusive Pfad, abzuwandeln und die Ausgabe des Pfad+Dateinamenstrings einfach nach der Länge auszuwerten. Wenn mir mal etwas Zeit zur Verfügung steht innerhalb der nächsten Tage, würde ich mich nochmal melden, um soetwas angepasstes zu posten.
Gruss
ElBlindo
Nicht gerade eine elegante Lösung:
Ich vermute mal es reicht von der Partition mit NT-Backup (Die "Sicherung") ein Backup zu machen, auf ne andere leere Partition, vielleicht auf einer anderen Festplatte. Dateien mit zu langen Namen werden nicht ins Backup übernommen und tauchen im Protokoll auf. So war es jedenfalls noch bei Win98. Das dauert aber, wenn die Festplatte groß und voll ist.
Mit dir c:\ /s /b > dateiliste.txt eine Liste alle auf dem Datenträger gespeicherten Dateien erstellen, dann einfach die längste raussuchen (wenn man Excel hat kann man es auch damit bequem machen)...
Gruß
Borlander
Hallo,
also hier mal ein schnell zusammengebautes Script (original hier ) Probleme bereiten noch dateien, auf die der Zugriff aus welchen Gründen auch immer nicht möglich ist, da steigt das Script aus. Soll ja aber auch nur als Anregung dienen!
Von hier ab ausschneiden, als suche_datei.vbs abspeichern und an den beschriebenen Stellen anpassen.
'------------FileSearch.vbs---------------------
Set fso = CreateObject("Scripting.FileSystemObject")
' In der nächsten Zeile den Suchordner anpasssen
set root=fso.getFolder("d:\")
' In der nächsten Zeile die Ausgabedatei bestimmen
set oFile=fso.CreateTextFile("c:\Testfile.txt")
call folderlist(root)
sub folderlist(grp)
call filelist(grp)
for each fldr in grp.subFolders
set nf=fso.GetFolder(fldr.path)
call folderlist(nf)
set nf=nothing
next
end sub
sub filelist(grp)
for each file in grp.files
laenge=len(file) + len (path)
oFile.writeLine file.path & " Länge = " & laenge
next
end sub
'---------------------------------------------------
hier nicht mehr ausschneiden!
das erzeugt dann in etwa folgende datei C:\Testfile.txt
D:\mwmlog.txt Länge = 13
D:\Dokumente\Fax\fax00012.sff Länge = 29
D:\Dokumente\Fax\fax00013.mmr Länge = 29
D:\Dokumente\Fax\fax00013.m_r Länge = 29
D:\Dokumente\Fax\fax00013.sff Länge = 29
D:\Dokumente\ppc1 My Documents\Canoe.jpg Länge = 40
D:\Dokumente\ppc1 My Documents\cerralf.cer Länge = 42
D:\Dokumente\ppc1 My Documents\cerralf64.cer Länge = 44
D:\Dokumente\ppc1 My Documents\certcrl.crl Länge = 42
D:\Dokumente\ppc1 My Documents\certnew.cer Länge = 42
D:\Dokumente\ppc1 My Documents\certnew.p7b Länge = 42
D:\Dokumente\ppc1 My Documents\cert_ralf.cer Länge = 44
D:\Dokumente\ppc1 My Documents\cert_ralf.p7b Länge = 44
D:\Dokumente\ppc1 My Documents\Couple.jpg Länge = 41
D:\Dokumente\ppc1 My Documents\crtimprt.cfg Länge = 43
Jetzt kann man noch if- Schleifen für Längen grösser x einbauen und und und
Gruss
Elblindo
