Ich versuche so etwas wie:
set pwd = abc&123
echo password %pwd%
Ich bekomme das Ergebnis als ...
'123' is not recognized as an internal or external command, operable program or batch file.
password abc
Ist das System so oder gibt es eine Flucht für solche Charaktere?
windows
command-line
batch
deostroll
quelle
quelle
Antworten:
Was Sie tun müssen, ist, Ihr Passwort in doppelte Anführungszeichen zu setzen:
Lass mich wissen, wie es geht.
quelle
set "pwd=abc&123"
Ich fand, dass es am besten mit einer Kombination aus Martineaus Antwort und Mastashake57s Antwort funktioniert.
Scheitert immer noch und
Fügt Anführungszeichen hinzu (Sie können die Anführungszeichen nicht mit einer
for
Schleifen- oder Zeichenfolgenmanipulation entfernen, da sie dank des kaufmännischen Und wieder fehlschlagen), was nicht so toll ist.Jedoch,
Funktioniert perfekt.
Ich hoffe, das hilft.
quelle
pwd
auf gesetzt wirdabc^&123
. Meistens ist dies wahrscheinlich genau das, was Sie tun müssen, aber es könnte Sie auffangen, wenn Sie nicht wissen, was passiert./?
nur eine Zusammenfassung und keine umfassende Dokumentation bereitgestellt.Aus der Befehlszeilenreferenz-Hilfedatei:
Es scheint, als wäre es einfacher, das gesamte Passwort in Anführungszeichen zu setzen, als einzelne Zeichen zu maskieren, wenn mehr als zwei Zeichen darin enthalten sind, die behandelt werden müssen.
quelle
Was Sie wirklich brauchen, ist:
Oder:
Erläuterung:
Da
&
es sich um ein spezielles Zeichen handelt, müssen Sie es mit entkommen^
, was zu^&
.Beim Ausführen
set pwd=abc^&123
wird die Variable auf den Wert gesetztabc&123
. Wenn Sie danach laufenecho %pwd%
, laufen Sie effektivecho abc&123
.Funktioniert
echo abc&123
aber nicht wie erwartet, da&
es sich um einen speziellen Charakter handelt. Sie können dies vermeiden, indem Sie Anführungszeichen hinzufügen.echo "abc&123"
Ihre Ausgabe enthält jedoch auch die Anführungszeichen. Mit anderen Worten, die Verwendung von Anführungszeichen ist nicht gerade die richtige Lösung.Was Sie brauchen, ist, dem
&
Zeichen zu entkommen, wenn Sie denecho
Befehl ausführen :Die Variable muss also den Wert enthalten
abc^&123
. Um die Variable auf den Wert zu setzenabc^&123
, müssten Sie die Sonderzeichen maskieren^
und Folgendes führen&
:quelle