ERLEDIGT
JA
JA
ANTWORTEN
3
3
ZUGRIFFE
853
853
EMPFEHLEN
-
24.02.09 15:17 #1
- Registriert seit
- Aug 2006
- Ort
- Europe - Germany - Mainz
- Beiträge
- 296
Hallo,
ich habe ein kleines Skript geschrieben, das mir alle Ordner inklusive Pfad mit mehr als 256 Zeichen auflisten soll. Eigentlich sollte das ja von Windows von vornerein unterbunden werden, aber die Praxis zeigt, man schafft es doch immer wieder.
Also mein Skript soll ein Netzlaufwerk scannen und alle Ordner inklusive Pfad auflisten, die mehr als 256 Zeichen haben.
Hier mal mein Code:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
Option Explicit Dim Pfad Pfad = "Q:\" Dim File Dim fso Set fso = CreateObject("Scripting.FileSystemObject") Dim Folder Set Folder = fso.GetFolder(Pfad) findFiles Folder WScript.Quit Sub findFiles(Strfolder) Dim fso Set fso = WScript.CreateObject("Scripting.FileSystemObject") Dim Folder Set Folder = fso.GetFolder(StrFolder) Dim SubFolder For Each SubFolder in folder.SubFolders findFiles SubFolder addtoFile "Länge: " & SubFolder & " " & SubFolder & "<br>", "C:\over256.htm" Next End Sub Function addtoFile (ByRef inhaltLog, ByRef clientname) SET fso = CreateObject ("Scripting.FileSystemObject") DIM clientlog SET clientlog = fso.OpenTextFile (clientname,8,TRUE) 'Logdatei schreiben: clientlog.Writeline inhaltLog clientlog.close End Function
Mein Problem ist, das mein Skript in dieser Zeile einen Fehler erzeugt, wenn der Ordner inklusive Pfad mehr als 256 Zeichen hat:
gruß klaus.Code :1
For Each SubFolder in folder.SubFolders
-
24.02.09 16:28 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Hi.
Man kann das Limit umgehen, indem man den Pfad mit \\?\ beginnt:
Code :1
Pfad = "\\?\Q:\"
Gruß
PS: Es ist übrigens unnötig jedesmal in der findFiles Prozedur ein neues FilesystemObject zu erstellen. Die GetFolder Methode liefert keinen String, sondern ein Folder Objekt!Geändert von deepthroat (24.02.09 um 16:30 Uhr)
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
25.02.09 08:28 #3
- Registriert seit
- Aug 2006
- Ort
- Europe - Germany - Mainz
- Beiträge
- 296
Hi deepthroat,
funktioniert wunderbar.
Vielen Dank!
gruß klaus.
PS: Dann müsste ich das FilesystemObject aber als globale Variable definieren!?
-
25.02.09 08:35 #4
- Registriert seit
- Jun 2005
- Beiträge
- 8.169
Morgen!Das FilesystemObject brauchst du doch in der findFiles Prozedur gar nicht. Du übergibst doch schon ein Folder Objekt (von daher ist der Name strFolder sehr irreführend, weil es sich nicht um einen String handelt).
GrußCode vb:1 2 3 4 5 6 7 8
Sub findFiles(folder) Dim SubFolder For Each SubFolder in folder.SubFolders findFiles SubFolder addtoFile "Länge: " & SubFolder & " " & SubFolder & "<br>", "C:\over256.htm" Next End Sub
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
Ähnliche Themen
-
Mit regulären Ausdrücken € Zeichen finden und weiterverarbeiten
Von Binio im Forum PHPAntworten: 1Letzter Beitrag: 19.09.10, 23:06 -
Zeichen fremder Sprachen finden?
Von supersalzi im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 09.08.08, 19:04 -
nummerisches Zeichen in string finden
Von Bamboocha_10 im Forum Visual Basic 6.0Antworten: 2Letzter Beitrag: 30.10.07, 16:54 -
Ordner Suchen und Finden
Von liquidbeats im Forum Linux & UnixAntworten: 2Letzter Beitrag: 10.08.07, 11:13 -
über preg_match Zeichen finden
Von low-group im Forum PHPAntworten: 2Letzter Beitrag: 21.05.04, 17:09





Zitieren

Login





