ForHosting KIT · Entwickler-Tools

Kommandozeilenargumente nach Spezifikation parsen

Legen Sie fest, welche Schalter und Optionen Ihr Programm kennt, und die Befehlszeile wird sauber sortiert: --tag=stable --tag latest ergibt die zwei Tags stable und latest, src.js bleibt ein freies Argument und --mystery wird als unbekannt gemeldet. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald

Läuft direkt in Ihrem Browser – kostenlos. Ihre Datei verlässt Ihren Browser nicht und wird an keinen Server übertragen.

Wandeln Sie ein rohes Array von Kommandozeilenargumenten in ein verlässliches Objekt um, ohne Parserregeln über Ihre gesamte Anwendung zu verteilen. Übergeben Sie die Elemente zusammen mit einer kompakten Spezifikation für jeden booleschen Schalter und jede wertbehaftete Option. Der Parser führt Aliasse auf kanonische Namen zurück, bewahrt Positionsargumente, erkennt unbekannte Schalter, unterstützt lange Optionen mit Gleichheitszeichen und beendet die Optionsauswertung nach dem üblichen Doppelstrich. Fehlerhafte Spezifikationen, doppelt verwendete Argumente und Optionen ohne erforderlichen Wert führen zu eindeutigen Eingabefehlern.

Beschreiben Sie die Kommandozeilenschnittstelle als Daten

Beginnen Sie mit den Argumentelementen, wie sie die Laufzeit nach dem Entfernen des Programm- und Skriptnamens liefert. Definieren Sie danach jedes zulässige Argument in der Spezifikation. Verwenden Sie flag für einen Schalter, dessen Vorhandensein wahr bedeutet, beispielsweise <code>--verbose</code>.

Verwenden Sie option, wenn auf die Schreibweise ein Wert folgen muss, etwa <code>--output result.json</code>. Durch Aliasse befüllen kurze und lange Schreibweisen dieselbe kanonische Eigenschaft; somit können <code>-o</code> und <code>--output</code> beide <code>output</code> ergeben. Kanonische Namen bestehen aus Kleinbuchstaben, Ziffern und Unterstrichen, damit Sie das Ergebnis ohne weitere Umbenennung verarbeiten können.

Aliasse müssen mit einem oder zwei Bindestrichen beginnen. Der Parser lehnt doppelte kanonische Namen und Aliasse ab, weil solche Kollisionen das Ergebnis von der Deklarationsreihenfolge abhängig machen würden. Setzen Sie <code>multiple</code> nur, wenn Wiederholungen beabsichtigt sind; die Werte erscheinen dann in der Reihenfolge ihres Auftretens.

Verstehen Sie die Elementauswertung und das Ergebnis

Das Ergebnis trennt erkannte Werte, Positionselemente und unbekannte Schalter. Erkannte Schalter werden unter ihrem kanonischen Namen wahr, während Optionen das nachfolgende Element speichern. Eine lange Option kann ihren Wert auch im selben Element tragen, wie bei <code>--format=json</code>.

Sie können es dadurch ablehnen, eine Warnung anzeigen oder es gezielt weiterreichen. Andere unbekannte Elemente gelten als Positionswerte. Ein einzelnes <code>--</code> beendet die Optionsauswertung; sämtliche folgenden Elemente sind dann positionell, auch wenn sie mit einem Bindestrich beginnen.

Diese übliche Maskierung macht Dateinamen wie <code>-draft.txt</code> eindeutig. Der Parser erfindet keine Standardwerte und wandelt Zeichenfolgen nicht in Zahlen um, denn solche Regeln gehören in die Anwendung und könnten Fehler verbergen. Das Ergebnis ist deterministisch und erhält die Reihenfolge.

Behandeln Sie fehlende Werte und Wiederholungen sicher

Dieselbe Regel gilt für eine leere verbundene Form wie <code>--output=</code>. Dieses strenge Verhalten verhindert, dass ein nachfolgender Schalter unbemerkt als Datenwert verbraucht wird, und beseitigt damit einen besonders folgenreichen Fehler bei der Argumentauswertung. Ein einzelner Bindestrich bleibt als Wert zulässig; Programme verwenden <code>-</code> häufig für die Standardeingabe oder Standardausgabe.

Standardmäßig ist auch die Wiederholung eines erkannten Arguments ein Fehler. Deklarieren Sie <code>multiple: true</code>, wenn mehrere Vorkommen erlaubt sind, etwa für mehrere Include-Pfade oder Kennzeichnungen; der kanonische Name enthält dann stets ein Array. Unbekannte Schalter werden lediglich gemeldet und lösen keinen Abbruch aus, sodass die Anwendung ihre Richtlinie für Kompatibilität und Weiterleitung selbst festlegt.

Prüfen Sie einen CLI-Wrapper

Werten Sie Wrapper-Optionen aus und melden Sie nicht unterstützte Schalter, bevor Sie den umschlossenen Prozess starten.

Vereinheitlichen Sie kurze und lange Optionen

Führen Sie Aliasse wie -o und --output auf eine stabile Eigenschaft zurück und vereinfachen Sie die Anwendungslogik.

Was kostet die Nutzung?

Die Browserversion führt dieselbe deterministische Logik lokal aus.

Wird die Schreibweise --name=value unterstützt?

Ja, bei langen Optionen mit Wert. Ein leerer Wert nach dem Gleichheitszeichen führt zu einem Fehler.

Was geschieht nach einem alleinstehenden Doppelstrich?

Die Optionsauswertung endet und alle verbleibenden Elemente werden als Positionsargumente zurückgegeben.

Können -o und --output dieselbe Option füllen?

Ja. Hinterlegen Sie beide Schreibweisen unter einem Namen, dann speichert jede davon ihren Wert dort, und Kurz- wie Langform liefern dasselbe Ergebnis. Zwei Optionen mit derselben Schreibweise werden abgelehnt, weil das Ergebnis sonst von der Reihenfolge abhinge.

Was passiert, wenn einer Option der Wert fehlt?

Das Einlesen bricht mit einer klaren Meldung ab, die die betroffene Schreibweise nennt. Das geschieht, wenn die Option das letzte Wort ist, direkt vor dem Doppelstrich steht oder ein weiteres Flag folgt – ein späterer Schalter wird so nie als Wert verschluckt.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/dev2/cli-arg-parse-spec

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev2/cli-arg-parse-spec \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"args":["--verbose","--output=result.json","input.txt"],"spec":[{"name":"verbose","aliases":["--verbose","-v"],"kind":"flag"},{"name":"output","aliases":["--output","-o"],"kind":"option"}]}'
{
  "args": [
    "--verbose",
    "--output=result.json",
    "input.txt"
  ],
  "spec": [
    {
      "name": "verbose",
      "aliases": [
        "--verbose",
        "-v"
      ],
      "kind": "flag"
    },
    {
      "name": "output",
      "aliases": [
        "--output",
        "-o"
      ],
      "kind": "option"
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev2.cli_arg_parse_spec",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Beschreiben Sie die Kommandozeilenschnittstelle als Daten

Jeder Eintrag besitzt einen kanonischen Namen, mindestens einen Alias und eine Art.

Verstehen Sie die Elementauswertung und das Ergebnis

Es gilt eine exakte Übereinstimmung; kurze Bündel wie <code>-abc</code> werden nur dann erkannt, wenn die gesamte Schreibweise als Alias hinterlegt ist. Jedes unbekannte Element, das mit einem Bindestrich beginnt, wird an <code>unknown_flags</code> angehängt.

Behandeln Sie fehlende Werte und Wiederholungen sicher

Jeder Eintrag der Art option verlangt bei jedem Auftreten eines Alias einen nicht leeren Wert. Steht der Alias am Ende, unmittelbar vor dem Endemarkierer oder vor einem weiteren schalterförmigen Element, bricht die Auswertung mit einem Eingabefehler ab, der den betroffenen Alias nennt.

Erstellen Sie Vorschauen und Tests

Wandeln Sie Elementarrays in strukturierte, deterministische Fixtures um, ohne einen Befehl oder eine Shell auszuführen.

Werden unbekannte Schalter abgelehnt?

Nein. Sie werden in unknown_flags zurückgegeben, damit Sie sie ablehnen, melden oder weiterreichen können.

Werden kurze Schalter wie -abc gebündelt?

Nein. Aliasse entsprechen vollständigen Elementen; -abc wird nur erkannt, wenn genau dieser Alias deklariert wurde.

Vollständige KIT-Dokumentation lesen →