CSVfox
Get the job done.
 Deutsch

%job, %j

Verwendung einer Auftragsdatei mit CSVfox Befehlen

Beschreibung

Ein %job Befehl bezeichnet eine Datei, die ihrerseits einige CSVfox Befehlszeilenparameter enthält.

Eine job Datei ist eine reine Textdatei. Jede Zeile enthält genau einen CSVfox Befehl. Die Befehle werden also Zeile für Zeile aus der job Datei gelesen.
Sie werden der Reihe nach abgearbeitet, so als ob sie in der Befehlszeile an der Stelle stehen würden, an der der %job Befehl aufgerufen wurde.

Einrückung, Leerzeilen und Kommentare

Vorangestellte ein oder mehrere Leerzeichen werden aus jeder Zeile der Datei job entfernt. Nachfolgende Leerzeichen sind Teil des Befehls.
Leere Zeilen werden ignoriert und übersprungen.
Kommentarzeilen beginnen mit einer 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 das Zitieren von 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 mit CSVfox Befehlen interferieren können; auch diese Effekte können durch die Verwendung einer job Datei vollständig vermieden werden.

Muster

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

In der Datei %job enthält jede Zeile ein Argument, das andernfalls 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 getrennt werden.

Eine %job Datei 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 einer Datei "changedelimiters.txt" speichern:
changedelimiters.txt
# the input csv file infile.csv # change csv delimiters from comma to semicolon +delim=, -delim=; # increase field [a] by 20 percent -set[a]=([*]+20%) # the output csv file my output file.csv

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

Sie können alle oder nur einen Teil der erforderlichen Parameter in einer %job Datei 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 %job=us_to_german.txt outfile.csv
us_to_german.txt
# Umformatierung von ASCII nach Windows +delim=, +encoding=ASCII -delim=; -encoding=Windows-1252 -regex[Price]=\d\.\d/\1,\2
Die Datei %job us_to_german.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 %job/UTF-8=us_to_german.txt outfile.csv
Liest die Befehle von us_to_german.txt explizit im UTF-8-Format anstelle des plattformspezifischen Standardformats und verwendet sie zum Ändern von infile.csv in outfile.csv.
csvfox infile.csv %job=us_to_german.txt -rename[Price]=[Amount] -columns=[3]-[6] outfile.csv
Liest die Befehle von us_to_german.txt erneut ein und verwendet sie für die Änderung von infile.csv in outfile.csv.
Und es müssen zusätzliche Befehle ausgeführt werden, da das Feld "Preis" in outfile.csv in "Betrag" umbenannt werden muss und die Ausgabedatei nur die Felder mit den Nummern 3 bis 6 enthalten soll.
Under construction, coming soon