TextKonverter

Ausgabe von Dateiinformationen per Skript

Wenn Sie Eigenschaften und Dateiinformationen von Textdateien innerhalb eines Skripts oder über die Kommandozeile anzeigen lassen möchten, können Sie dafür Programme wie den TextKonverter oder den TextEncoder verwenden. Beide Programme unterstützen sowohl die Ausgabe von allgemeinen Informationen wie den Dateinamen, den Dateiordner, die Dateigröße oder die Zeit als auch die Ausgabe von textdateispezifischen Eigenschaften wie Informationen über die Kodierung, den verwendeten Zeilenumbruchtyp oder die Anzahl von Zeilen, Zeichen oder Wörtern in der jeweiligen Datei.

Wir schauen uns in diesem Tutorial zunächst an, wie Sie die Programme dafür nutzen können, Informationen von einzelnen oder mehreren Dateien auszugeben. Danach zeigen wir Ihnen, wie Sie den Programmen Ordner übergeben können, um Informationen über alle Dateien aus dem Ordner anzeigen zu lassen und zuletzt werfen wir einen Blick auf Übersichtstabellen, die in Listenform über alle Parameter informieren, die Sie in der Skriptausgabe verwenden können:

Auch wenn wir in diesem Tutorial für alle Beispielaufrufe den TextKonverter verwenden, können alle Aufrufe genauso auch mit dem TextEncoder genutzt werden.

Informationen von einzelnen oder mehreren Dateien ausgeben

Für die Ausgabe von Dateiinformationen mit dem TextKonverter oder dem TextEncoder benötigen wir 2 wichtige Parameter. Dies ist einerseits der Parameter "-cl", der die Programme in den Batch-Modus ("cl" steht für "command line") versetzt und dafür sorgt, dass die Programme nicht mit einer grafischen Benutzeroberfläche starten. Andererseits benötigen wir den Parameter "info". Mit diesem Parameter geben wir an, welche Informationen wir über die Textdateien ausgegeben haben möchten.

Schauen wir uns dazu zunächst einen einfachen Aufruf an, der uns die Anzahl der Wörter der Datei "datei.txt" in der Kommandozeile ausgeben soll:

TextConverter -cl C:\datei.txt info=%words%

Mit dem Parameter "-cl" versetzen wir das Programm in den Batch-Modus, danach übergeben wir den Pfad der Datei, deren Informationen wir anzeigen möchten und zuletzt übergeben wir mit dem Parameter "info" den Text, der ausgegeben werden soll. Dieser Text kann sowohl beliebige Zeichen als auch Platzhalter für die Dateiinformationen enthalten (unten auf dieser Seite finden Sie Listen mit allen verfügbaren Platzhalter, die Sie verwenden können). Da wir die Anzahl der Wörter ausgeben möchten, verwenden wir in diesem Beispiel den Platzhalter %words%, der für diese Angabe steht.

Natürlich können wir auch mehrere Platzhalter kombinieren. In unserem nächsten Beispiel möchten wir sowohl die Kodierung der Datei (Platzhalter %enc% von "encoding") als auch den Zeilenumbruchtyp (Platzhalter %lb% von "line break") der Datei ausgeben:

TextConverter -cl C:\datei.txt "info=%enc% %lb%"

Da wir zwischen der Kodierung und dem Zeilenumbruchtyp ein Leerzeichen schreiben möchten, müssen wir den Parameter dieses Mal in Anführungszeichen setzen, da Leerzeichen ansonsten als Beginn des nächsten Parameters interpretiert würden und damit der Info-Parameter nicht zusammen bleiben würde.

Bisher haben wir nur Informationen über einzelne Dateien ausgegeben. Wir können aber auch Informationen von mehreren Dateien gleichzeitig ausgeben. Dafür geben wir die Pfade zu allen Dateien an, die wir auslesen möchten:

TextConverter -cl C:\a\datei1.txt C:\b\datei2.txt "info=Die Datei %filename% hat %chars% Zeichen, %lines% Zeilen, %words% Wörter, ist %size-kb% KB groß und im Ordner %ordner-1% gespeichert."

Der TextKonverter oder der TextEncoder wird in diesem Fall für jede Datei eine Zeile in der Konsole ausgeben. Damit wir die Zeilen der richtigen Datei zuordnen können, können wir uns aus den Platzhaltern der Kategorien Dateiname und Dateiordner bedienen. In diesem Beispiel geben wir beispielsweise mit %filename% den Namen der Datei mit Dateiendung aus (hier "datei1.txt" und "datei2.txt") und mit %ordner-1% den direkten Ordner in dem die jeweilige Datei gespeichert ist (hier "a" und "b"). Mit dem Platzhalter %size-kb% wird die Größe der Datei in Kilobyte ausgegeben. Wenn wir stattdessen %size% (wie im nächsten Beispiel) schreiben, wird eine Einheit verwendet, die zu der Größe der Datei passt. Weitere Platzhalter für die Dateigröße finden Sie im Abschnitt über Platzhalter für die Größe der Datei.

Informationen von Dateien aus Ordnern ausgeben

Um die Informationen von allen Dateien aus einem Ordner über die Befehlszeile auszugeben, können wir dem TextKonverter oder dem TextEncoder auch den Pfad zu einem oder mehreren Ordnern übergeben. Dies kann zum Beispiel nützlich sein, falls wir die Informationen von sehr vielen Dateien ausgeben möchten oder gar nicht genau wissen, wie die Dateien in einem bestimmten Ordner heißen.

Die Syntax ist die gleiche, wie bei einem Aufruf mit Dateien. Wir übergeben einfach statt den Dateipfaden die Ordnerpfade:

TextConverter -cl C:\ordner "info=%filepath% %encbom% [%size%]"

Mit diesem Aufruf erstellen wir eine Dateiliste aller Dateien aus dem Ordner "C:\ordner" mit dem vollständigen Dateipfad, der Dateigröße sowie mit Informationen darüber, in welcher Kodierung die Dateien abgespeichert sind und ob die Dateien eine Byte Order Mark haben oder nicht. Auch hier sind die Platzhalter für den Dateinamen und den Dateiordner besonders nützlich, um die ausgegebenen Informationen den Dateien zuordnen zu können.

Platzhalter

In den Beispielen haben Sie schon einige Platzhalter kennengelernt, die Sie neben beliebigen Zeichen und Buchstaben mit dem Info-Parameter verwenden können. Eine Erklärung dieser Platzhalter sowie alle sonstigen verfügbaren Platzhalter finden Sie in den nachfolgenden Listen. Die Listen sind sortiert nach Platzhalter für den Dateinamen, den Dateiordner, die Dateigröße, Platzhalter für textdateispezifische Eigenschaften sowie Platzhalter für die Zeit. Alle Platzhalter können beliebig miteinander kombiniert werden, auch mehrfach innerhalb eines Aufrufs verwendet werden und durch beliebige andere Zeichen ergänzt werden.

Beachten Sie bitte, dass Sie in manchen Situationen, zum Beispiel in Windows-Batch-Scripts, dass Prozentzeichen verdoppeln müssen (also %%words%% statt nur %words%). Ansonsten kann der Platzhalter von Windows als eigene Variable interpretiert werden und ist dadurch in den meisten Fällen leer.

Platzhalter für den Dateinamen

Um den Dateinamen oder den Pfad einer Datei auszugeben, können Sie die folgenden Platzhalter verwenden:

%dateipfad%Pfad der Datei mit Dateiname - zum Beispiel "C:\order\datei.txt"
%pfad%Pfad der Datei ohne Dateiname - zum Beispiel "C:\order\"
%dateiname%Name der Datei mit Dateiendung - zum Beispiel "datei.txt"
%name%Name der Datei ohne Dateiendung - zum Beispiel "datei"
%name,x,y%Name der Datei von Zeichen x bis Zeichen y. %name,1,3% entspricht beispielsweise den ersten drei Zeichen des Dateinamens, %name,2,5% dem zweiten bis fünften Zeichen.
%ext%Endung der Datei - zum Beispiel "txt"
%ext,x,y%Endung der Datei von Zeichen x bis Zeichen y

Platzhalter für den Dateiordner

Um einzelne Ordner des Pfades einer Datei oder das Laufwerk auszugeben, können Sie die folgenden Platzhalter nutzen:

%ordnerX%
%ordner-X%
Die Platzhalter %ordner1%, %ordner2%, %ordner3% bis hin zu %ordner50% sowie %ordner-1%, %ordner-2%, %ordner-3% bis hin zu %ordner-50% stehen für die Namen der Ordner, in denen die Datei liegt. Positive Zahlen wie in %ordner1% zählen dabei die Ordner von dem Laufwerk bis zur Datei, negative Zahlen wie in %ordner-1% zählen andersherum. Der Platzhalter %ordner1% steht entsprechend für den ersten Ordner des Pfads, %ordner-1% für den ersten Ordner unterhalb der Datei. Für die Datei C:\Reisen\Urlaub\Norwegen\Datei.txt würde %ordner-1% also beim Umbenennen durch "Norwegen" ausgetauscht während %ordner1% "Reisen" wäre. Der Platzhalter %ordner2% steht entsprechend für den zweiten Ordner im Pfad, für diese Datei also "Urlaub" (%ordner-2% wäre auch "Reisen" von oben gezählt).
%drive%Laufwerk der Datei - zum Beispiel "C:"

Platzhalter für die Dateigröße

Die folgenden Platzhalter können Sie verwenden, um die Größe der Datei auszugeben:

%size% Dateigröße in einer zur Dateigröße passenden Einheit
%size-b%Dateigröße in Bytes
%size-kb%Dateigröße in Kilo Bytes ohne Nachkommastellen
%size-kb-X%Dateigröße in Kilo Bytes mit X Nachkommastellen
%size-mb%Dateigröße in Mega Bytes ohne Nachkommastellen
%size-mb-X%Dateigröße in Mega Bytes mit X Nachkommastellen
%size-gb%Dateigröße in Giga Bytes ohne Nachkommastellen
%size-gb-X%Dateigröße in Giga Bytes mit X Nachkommastellen
%size-tb%Dateigröße in Tera Bytes ohne Nachkommastellen
%size-tb-X%Dateigröße in Tera Bytes mit X Nachkommastellen

Platzhalter für textdateispezifische Eigenschaften

Textdateispezifische Informationen können mit den folgenden Platzhaltern in der Kommandozeile oder innerhalb eines Skripts ausgegeben werden:

%enc%Kodierung der Datei (zum Beispiel "utf8" oder "utf16le")
%bom%Vorhandensein einer Byte Order Mark (zum Beispiel "0" oder "1")
%encbomKodierung und Byte Order Mark (zum Beispiel "utf8" oder "utf8 bom")
%lbZeilenumbruchtyp der Datei (zum Beispiel "crlf" oder "lf")
%linesAnzahl der Zeilen der Datei
%charsAnzahl der Zeichen der Datei
%wordsAnzahl der Wörter der Datei

Platzhalter für die Zeit

Wenn Sie die aktuelle Zeit oder das aktuelle Datum ausgeben möchten, können Sie sich dafür aus dem Sortiment der folgenden Platzhalter bedienen:

%date%Aktuelles Datum im Format "Jahr-Monat-Tag" (jeweils zwei- beziehungsweise vierstellig mit führenden Nullen falls nötig; Kurzform für %yyyy%-%mm%-%dd%)
%dd.mm.yyyy%Aktuelles Datum im Format "Tag.Monat.Jahr" (jeweils zwei- beziehungsweise vierstellig mit führenden Nullen falls nötig; Kurzform für %dd%.%mm%.%yyyy%)
%yyyy-mm-dd%Aktuelles Datum im Format "Jahr-Monat-Tag" (jeweils zwei- beziehungsweise vierstellig mit führenden Nullen falls nötig; Kurzform für %yyyy%-%mm%-%dd%)
%time%Aktuelle Zeit im Format "Stunde-Minute-Sekunde" (jeweils zweistellig mit führenden Nullen falls nötig; Kurzform für %hh%-%ii%-%ss%)
%hh-mm-ss%Aktuelle Zeit im Format "Stunde-Minute-Sekunde" (jeweils zweistellig mit führenden Nullen falls nötig; Kurzform für %hh%-%ii%-%ss%)
%hh-mm%Aktuelle Zeit im Format "Stunde-Minute" (jeweils zweistellig mit führenden Nullen falls nötig; Kurzform für %hh%-%ii%)
%yyyy%Aktuelles Jahr mit vier Ziffern
%yy%Aktuelles Jahr mit zwei Ziffern
%mm%Aktueller Monat, immer zweistellig, führende Nullen falls nötig
%m%Aktueller Monat, ein- oder zweistellig ohne führende Nullen
%dd%Aktueller Tag, immer zweistellig, führende Nullen falls nötig
%d%Aktueller Tag, ein- oder zweistellig ohne führende Nullen
%hh%Aktuelle Stunde, immer zweistellig, führende Nullen falls nötig
%h%Aktuelle Stunde, ein- oder zweistellig ohne führende Nullen
%ii%Aktuelle Minute, immer zweistellig, führende Nullen falls nötig
%i%Aktuelle Minute, ein- oder zweistellig ohne führende Nullen
%ss%Aktuelle Sekunde, immer zweistellig, führende Nullen falls nötig
%s%Aktuelle Sekunde, ein- oder zweistellig ohne führende Nullen