- Offizieller Beitrag
Kommandozeilenaufrufe in Nim erlauben eine genaue Spezifikation der Parameter (Short, Long, Argument) .
Für die Auswertung gibt es fertige Funktionen.
Code
import os, parseopt
let cmdLine = commandLineParams()
var p = initOptParser(cmdLine)
# Bei der Initialisierung des Parsers können übergeben werden:
# shortNoVal - set[char] = {}
# longNoVal - seq[string] = @[]
# allowWhitespaceAfterColon - Standard: true
for kind, key, val in p.getopt():
echo "kind: ", kind
echo "key: ", key
echo "val: ", val
#[
cmdLongOption:
Dem Key werden "--" vorangestellt, Trennung zum Val durch "=" oder ":"
C:\CODE\nim\_myExamples_>test_cmd --file="c:\test ordner\test.file" --cmd=read --pattern=(\D+)
kind: cmdLongOption
key: file
val: c:\test ordner\test.file
kind: cmdLongOption
key: cmd
val: read
kind: cmdLongOption
key: pattern
val: (\D+)
cmdShortOption:
Dem Key wird "-" vorangestellt, Trennung zum Val durch "=" oder ":".
Der Key darf dann nur 1 Zeichen lang sein!
C:\CODE\nim\_myExamples_>test_cmd -f="c:\test ordner\test.file" -c=read -p=(\D+)
kind: cmdShortOption
key: f
val: c:\test ordner\test.file
kind: cmdShortOption
key: c
val: read
kind: cmdShortOption
key: p
val: (\D+)
cmdArgument:
Alle Parameter die ohne vorangestellte Short-/Long Option übergeben werden, werden als Key ausgegeben. Evtl. enthaltene "=" oder ":" dienen nicht der Abtrennung zu Val, sondern sind Bestandteil des Key.
C:\CODE\nim\_myExamples_>test_cmd --file="c:\test ordner\test.file" --cmd=read pattern=(\D+)
kind: cmdLongOption
key: file
val: c:\test ordner\test.file
kind: cmdLongOption
key: cmd
val: read
kind: cmdArgument
key: pattern=(\D+)
val:
]#
Alles anzeigen
Doku: parseopt