CSVfox
Leverage Your Data.
 Deutsch

%params

Verwendung einer Parameterdatei mit CSVfox Befehlen

Beschreibung

Der Befehl %params bezeichnet eine Datei, die ihrerseits einige CSVfox Befehlszeilenparameter enthält.

Eine Parameterdatei ist eine reine Textdatei. Jede Zeile enthält genau einen CSVfox Parameter. Die Befehle werden also Zeile für Zeile aus der Parameterdatei gelesen.
Sie werden in der Reihenfolge verarbeitet, als ob sie in der Befehlszeile an der Stelle stehen würden, an der der Befehl %params aufgerufen wurde.

Einrückung, Leerzeilen und Kommentare

Vorangestellte ein oder mehrere Leerzeichen werden aus jeder Zeile der Parameterdatei entfernt. Nachfolgende Leerzeichen sind Teil des Befehls.
Leere Zeilen werden ignoriert und übersprungen.
Kommentarzeilen beginnen mit einem "## ": eine doppelte Raute gefolgt von einem Leerzeichen. Sie werden ebenfalls ignoriert und übersprungen.

Vorteile gegenüber der direkten Verwendung in der Befehlszeile

Das Verschieben von Befehlen in eine Datei ermöglicht eine bessere Übersichtlichkeit, die Wiederverwendung in verschiedenen Konstellationen und es erspart die Quotierung der in den Parameter eingebetteten Leerzeichen.
Insbesondere bei einer sehr langen Folge von Kommandozeilenparametern oder einem komplexen ±regex oder ±if Befehl, der viele Klammern und Sonderzeichen enthalten kann, die vom Batch-Befehlsprozessor ebenfalls interpretiert und verschleiert werden können, kann es hilfreich sein, die Befehle übersichtlich in einer Parameterdatei zu speichern.
In jeder Shell gibt es auch verschiedene Steuerzeichen und Platzhaltermechanismen sowie Weiterleitungs- und Umleitungszeichen, die die Befehle von CSVfox beeinträchtigen können; auch diese Effekte können durch die Verwendung einer Parameterdatei vollständig vermieden werden.

Muster

%params=filename %params/encoding=filename
Der Befehl %params kann allein oder zwischen anderen csvfox-Befehlen angegeben werden.
Es sind mehrere %paramfile Befehle in derselben Befehlszeile möglich. %paramfile Dateien können sogar verschachtelt werden.
Der in der Parameterdatei verwendete Zeichensatz kann optional mit der Option "/" angegeben werden.

In der Parameterdatei enthält jede Zeile ein Argument, das sonst ein Programmparameter gewesen wäre. Jedes Leerzeichen ist Teil des Ausdrucks, daher müssen eingeschlossene und nachgestellte Leerzeichen sorgfältig vermieden werden, wenn sie nicht Teil des Befehlsausdrucks sein sollen.
Vorangestellte Leerzeichen werden ignoriert und können zur besseren visuellen Strukturierung der Datei verwendet werden.

Andererseits ist das Einschließen von Befehlen, Ausdrücken und Feldnamen, die Leerzeichen enthalten, nicht notwendig, da sie nicht automatisch an Leerzeichen aufgeteilt werden.

Eine Parameterdatei kann jede unterstützte Kodierung haben, so dass sie alle einschränkenden oder Befehlszeilen-Zeichensätze überwindet. Dies ist besonders für Windows wichtig, da unter Linux oder MacOS eine UTF-8-Shell Standard ist, die nur wenige Zeichenbeschränkungen mit sich bringt.

Stellen Sie sich die Befehlszeilensequenz vor:
csvfox infile.csv +delim=, -delim=; -set[a]=([*]+20%) "my output file.csv"
Sie können alle Befehlszeilenparameter in eine Datei "myparameters.txt" schreiben:
myparameters.txt
infile.csv ## change delim from comma to semicolon +delim=, -delim=; ## increase [a] by 20 percent -set[a]=([*]+20%) my output file.csv

Und von nun an können Sie einfach aufrufen:
csvfox %params=myparameters.txt
Sie sehen, dass die Verwendung von Anführungszeichen zum Einschließen von Leerzeichen nicht mehr notwendig ist, wie es früher in der Kommandozeile der Fall war.

Sie können alle oder nur einige der erforderlichen Parameter in einer Parameterdatei ablegen. Auf diese Weise ist es möglich, einige Bausteine vorzubereiten, die häufig verwendet werden können.


Beispiele für die Verwendung

csvfox infile.csv %params=us_to_ger.txt outfile.csv
us_to_ger.txt
## Umformatierung von ASCII nach Windows +delim=, +encoding=ASCII -delim=; -encoding=Windows-1252 -regex[Price]=\d\.\d/\1,\2
Die Parameterdatei us_to_ger.txt enthält eine Reihe von Konvertierungen, die vorgenommen werden können, um eine CSV Datei, die den US-amerikanischen Gepflogenheiten folgt, besser an das deutsche Gebietsschema anzupassen (auf einem älteren Windows-PC). Sie ändert das Trennzeichen CSV von Komma auf Semikolon, die Kodierung von ASCII auf Windows-1252 und ersetzt den Dezimalpunkt im Feld "Preis" durch ein Dezimalkomma.
Die Datei wird hier zum Ändern von infile.csv in outfile.csv verwendet.
csvfox infile.csv %params/UTF-8=us_to_ger.txt outfile.csv
Liest die Parameter aus us_to_ger.txt explizit im UTF-8-Format anstelle des plattformspezifischen Standardformats und verwendet sie zum Ändern von infile.csv in outfile.csv.
csvfox infile.csv %params=us_to_ger.txt -rename[Preis]=[Betrag] -columns=[3]-[6] outfile.csv
Liest erneut die Parameter aus us_to_ger.txt und verwendet sie für die Änderung von infile.csv in outfile.csv.
Und es sind zusätzliche Befehle auszuführen, da das Feld "Preis" in outfile.csv in "Betrag" umbenannt werden muss und die Ausgabedatei nur die Felder von Nummer 3 bis 6 enthalten soll.
Under construction, coming soon