Warum führt eine Batchdatei andere Zeilen aus als die, die sie enthält?

Warum führt eine Batchdatei andere Zeilen aus als die, die sie enthält?

ich habe diese Zeile in eine Bat-Datei eingegeben (kurz pausieren, um zu sehen, was eingegeben wurde)

    start my_program -m y -f %s_%d_fix -z n
    pause

es läuft am Ende so

    start my_program -m y -f d_fix -z n

wie Sie sehen, wird der Teil „%s_%“ entfernt.
Ich habe versucht herauszufinden, ob das „%“ dazu geführt hat, dass die Zeilen anders gelesen wurden, aber es ist kein Problem. Beim Eintippen in cmd
erhält das gestartete Programm falsche Argumente. Irgendwelche Gedanken dazu? Danke.

Antwort1

Windows Cmd und MS-DOS Command.com werden verwendet, %um Umgebungsvariablen anzuzeigen. In Ihrem Fall %s_%wird als Variablenerweiterung interpretiert (wobei s_als Name der Variable fungiert) und zu einer leeren Zeichenfolge erweitert.

Um das %Zeichen unverändert beizubehalten, verwenden Sie %%s_%%d_fix.

verwandte Informationen