09.03.2007, 11:03

Markus Pilzweger

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

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.
Diskutieren Sie mit anderen Lesern über dieses Thema:
PC-WELT-Experten lösen Ihr PC-Problem
Immer informiert mit dem PC-WELT Newsletter
Best-of PC-WELT   PC-WELT Apps
PC-WELT Business-IT   PC-WELT Community
Facebook-Freunde empfehlen
3x PC-WELT testen!
Ja, ich teste 3x die PC-WELT mit DVD für nur 11,90 € (19,- Sfr). Den 4 GB USB-Stick erhalte ich gratis dazu.
PC-WELT 6/ 2012
Anrede:
Vorname:
Nachname:
Straße/Nr:
PLZ/Ort:
Land:
E-Mail:
Nur wenn ich innerhalb von 2 Wochen nach Erhalt der 3. Ausgabe nichts von mir hören lasse, möchte ich die PC-WELT mit DVD zum gleichen Preis weiterbeziehen (D: 55,80 €/Jahr, EU: 64,80 €/Jahr, CH: 103,70 Sfr/Jahr). Nach dem Testzeitraum ist der Bezug jederzeit kündbar.
Ich bin damit einverstanden, dass die IDG Tech Media GmbH und ihre Partner mich per E-Mail über interessante Vorteilsangebote informieren.
- Anzeige -
Angebote für PC-WELT-Leser

PC-WELT Verleihshop
Keine Abogebühren oder unnötige Vertragsbindungen. DVDs und Spiele bequem von zu Hause aus leihen.

Tarifrechner
Der PC-WELT Preisvergleich für Strom, Gas und DSL. Hier können Sie Tarife vergleichen und bequem viel Geld sparen.

PC-WELT Preisvergleich
In unserem großen Preisvergleich finden Sie die günstigsten Preise und alle redaktionellen Tests auf einen Blick.

- Anzeige -
Marktplatz
DELL

Dell Vostro 3550 Business Notebook
Komfort eines erweiterten Arbeitsbereichs, ohne mobile Anforderungen zu beeinträchtigen.

Congstar

congstar Full Flat nur noch 39,99€
Endlos in alle dt. Netze telefonieren, beste D-Netz-Qualität.

Congstar

Der günstige Tarif für Vielsurfer
congstar Smart 100. Surfen und telefonieren im besten D-Netz.

CosmosDirekt

CosmosDirekt Riesterrente
Mit der Riester-Rente privat mit hohen staatlichen Zulagen fürs Alter vorsorgen.

730209
Content Management by InterRed