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 bekomme, ist die folgende:
We're working with ""
Was ist denn hier los? Warum wird meine Variable nicht wiedergegeben?
batch-file
cmd
environment-variables
Jamie Dixon
quelle
quelle
=
als Teil des Namens interpretiert wird, kann auf die Variable nicht verwiesen werden%location%
, sondern auf%location %
. Ist das ein Tippfehler?alias x = y
in * nix Land?x = y
?Die Räume sind bedeutend. Sie haben eine Variable
'location '
mit dem Wert "erstellt"' "bob"'
. Hinweis - Es wurden einfache Anführungszeichen hinzugefügt, um die Position des Raums anzuzeigen.Wenn Sie Anführungszeichen in Ihrem Wert wünschen, sollte Ihr Code so aussehen
Wenn Sie keine Anführungszeichen möchten, sollte Ihr Code so aussehen
Oder noch besser
Die letzte Syntax verhindert, dass versehentlich nachgestellte Leerzeichen in den Wert gelangen, und schützt auch vor Sonderzeichen wie
&
|
usw.quelle
%
und möglicherweise,!
wenn die verzögerte Erweiterung aktiviert ist. Aber wenn der Wert Anführungszeichen enthält, müssen Sie darum kümmern , wenn Gift Zeichen zu entkommen wie|
,&
etc.Eingang
location.bat
Ausgabe
(Fehler, die du gemacht hast:
space
und" "
)quelle
set /p
fordert den Benutzer auf und speichert die Antwort in der angegebenen Variablen. zBset /p name="What is your name? " & echo Hello, %name%.
set /p "varname"="text"
ist falsch, es wird eine Variable mit dem Namenlocation"
(mit einem nachgestellten Anführungszeichen!) Erstellt. Es sollte seinset /p location="bob"
. Aber selbst dann passt es nicht mehr zur Frage