Windows 2000, XP: Cmd-Dateilisten und VB-Script

Freitag, 09.03.2007 | 11:03 von Markus Pilzweger
Sie wollen eine umfangreiche Dateiliste erstellen und in einem VB-Script weiterverarbeiten. Beim Anlegen der Dateiliste haben Sie die Wahl zwischen zwei Methoden. Jede hat ihren Nachteil: Das Einlesen der Dateien mit VB-Script benötigt einigen Code und dauert relativ lang. Die Alternative mit einem DIR-Befehl via Kommandozeile ("cmd.exe /c dir ...“) ist wesentlich schneller, hinterlässt aber Ascii-Text und verstümmelt gegebenenfalls deutsche Sonderzeichen. Wir zeigen Ihnen, wie Sie dieses Problem lösen können.
Anforderung:
Fortgeschrittener
Zeitaufwand:
Mittel

Problem:

Sie wollen eine umfangreiche Dateiliste erstellen und in einem VB-Script weiterverarbeiten. Beim Anlegen der Dateiliste haben Sie die Wahl zwischen zwei Methoden. Jede hat ihren Nachteil: Das Einlesen der Dateien mit VB-Script benötigt einigen Code und dauert relativ lang. Die Alternative mit einem DIR-Befehl via Kommandozeile („cmd.exe /c dir ...“) ist wesentlich schneller, hinterlässt aber Ascii-Text und verstümmelt gegebenenfalls deutsche Sonderzeichen.

Lösung:

Der Schalter /a der Cmd.EXE, der laut Microsoft-Beschreibung Ansi-Text erzeugen soll, funktioniert bekanntlich nicht. Sie können dennoch auf die schnelle DIR-Methode zurückgreifen, indem Sie Dateilisten im Unicode-Format ablegen. Der Cmd-Schalter /u arbeitet nämlich tadellos:

cmd.exe /u /c dir /a-d /s /b c:\*.* > c:iste.txt

Wenn Sie einen derartigen Befehl mit der Run-Methode in ein VB-Script einbauen, können Sie die erzeugte Dateiliste danach ohne Zeichencode-Probleme durchsuchen und filtern. Sie müssen nur beim Öffnen der Dateiliste in VB-Script explizit angeben, dass es sich um Unicode handelt:

set temp = FSO.GetFile(“c:iste.txt“)
set datei = temp.OpenAsTextStream(1,-1)

Der allerletzte Parameter -1 in diesem Zweizeiler sorgt für die Interpretation des Unicode-Zeichensatzes.

Damit Sie die reibungslose Zusammenarbeit der Cmd-Unicode-Ausgabe und eines VB-Filters an einem konkreten Beispiel nachvollziehen können, finden Sie :hier Datei pcwCmd_Filter.VBS . Das Script liest die gewünschten Ordner- oder Laufwerksinhalte ein und erlaubt via Inputbox eine Suche nach Dateien. Für alle Treffer erstellt das Script eine Verknüpfung in einem automatisch geöffneten Ordner – man kann die Dateien also sofort benutzen.

Freitag, 09.03.2007 | 11:03 von Markus Pilzweger
Kommentieren Kommentare zu diesem Artikel (0)
730209