ForHosting KIT · Entwickler-Tools

Kommandozeilenargumente nach Spezifikation parsen

Wandeln Sie ein rohes Array von Kommandozeilenargumenten in ein verlässliches Objekt um, ohne Parserregeln über Ihre gesamte Anwendung zu verteilen.

● BetaKostenlos · im Browser
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.

Ü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. Jeder Eintrag besitzt einen kanonischen Namen, mindestens einen Alias und eine Art. 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>. 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. 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

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. 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.

Erstellen Sie Vorschauen und Tests

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

Was kostet die Nutzung?

Jede API-Anfrage kostet $0.002. Die Browserversion führt dieselbe deterministische Logik lokal aus.

Werden unbekannte Schalter abgelehnt?

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

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

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

Werden kurze Schalter wie -abc gebündelt?

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

Was geschieht nach einem alleinstehenden Doppelstrich?

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

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.

Vollständige KIT-Dokumentation lesen →