it-swarm.com.de

Definieren und Verwenden einer Variablen in einer Batchdatei

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?

410
Jamie Dixon

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.

522
Brian Nixon

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.

246
dbenham

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 " ")

4
Philip