Ich versuche, eine Variable in einer Batch-Datei zu definieren und zu verwenden. Es sieht so aus, als ob es einfach sein sollte:
@echo off
set location = "bob"
echo We're working with "%location%"
Die Ausgabe, die ich erhalte, ist die folgende:
We're working with ""
Was ist hier los? Warum wird meine Variable nicht zurückgemeldet?
Das Leerzeichen vor dem =
wird als Teil des Namens interpretiert, und das Leerzeichen danach (sowie die Anführungszeichen) werden als Teil des Werts interpretiert. Auf die von Ihnen erstellte Variable kann also mit %location %
verwiesen werden. Wenn Sie dies nicht möchten, entfernen Sie die zusätzlichen Leerzeichen in der Definition.
Die Leerzeichen sind signifikant. Sie haben eine Variable mit dem Namen 'location '
mit dem Wert ' "bob"'
erstellt (einschließlich einfacher Anführungszeichen, um den Speicherort anzuzeigen).
Wenn Sie Anführungszeichen in Ihrem Wert wünschen, sollte Ihr Code so aussehen
set location="bob"
Wenn Sie keine Anführungszeichen wünschen, sollte Ihr Code so aussehen
set location=bob
Oder noch besser
set "location=bob"
Die letzte Syntax verhindert, dass versehentlich nachgestellte Leerzeichen in den Wert gelangen, und schützt auch vor Sonderzeichen wie & | usw.
eingabe location.bat
@echo off
cls
set /p "location"="bob"
echo We're working with %location%
pause
ausgabe
We're working with bob
(Fehler, die du gemacht hast: space
und " "
)