Kaufmännisches Und-Zeichen im Windows-Kennwort

1391
user3270760

Ich habe ein Kennwort für ein Perforce-Konto, das ein kaufmännisches Und (&) enthält. Wenn ich versuche, bestimmte P4-Befehle zu verwenden, erhalte ich die folgende Fehlermeldung:

Perforce password (P4PASSWD) invalid or unset. 

Ich habe das Gefühl, dass es etwas mit dem Et-Zeichen zu tun hat, das bewirkt, dass das Kennwort in der Windows-Befehlsshell nicht erkannt wird. Allerdings bin ich mit bash besser vertraut als mit Windows, daher bin ich mir nicht sicher, wie ich damit umgehen soll. Irgendwelche Windows-Experten, die so etwas gesehen haben? Ich möchte vermeiden, das Passwort wenn möglich ändern zu müssen, aber irgendwie meine P4PASSWD-Umgebungsvariable so einstellen, dass sie von der Shell als das richtige Passwort erkannt wird.

1
Warum sind Sie dagegen, das Passwort zu ändern? Warum gegen den Strom auf so etwas gehen? Ramhound vor 9 Jahren 0
Ein Passwort in einer Umgebung var? Ich hoffe, Sie erkennen, dass Sie es in Klartext speichern und JEDE Anwendung es lesen kann. Das geht sogar so weit, dass Sie es allen Websites zeigen, die Sie von diesem Computer aus besuchen. Tonny vor 9 Jahren 0
Ist P4PASSWD nicht eine Umgebungsvariante? Warum sonst würde es sich beschweren, wenn ich so etwas ausführt: `p4 ändert den Befehl -s -m1`` Perforce-Passwort (P4PASSWD) ungültig oder nicht gesetzt.` user3270760 vor 9 Jahren 0
@Tonny: Wie erhalten _exactly_ Websites Zugriff auf Ihre Umgebungsvariablen? grawity vor 9 Jahren 0
@Tonny: Ich sehe nicht, wie die letztere Methode funktionieren könnte. Windows schreibt die HTTP-Anforderungs-URLs in Browsern nicht auf magische Weise neu, es sei denn, der Browser ruft explizit eine Funktion zur Variablenerweiterung auf. Wenn dies der Fall wäre, würde jede einzelne Adresse mit einer Reihe von URL-kodierten Sonderzeichen (% 20 und dergleichen) beschädigt. grawity vor 9 Jahren 0
@ grawity ActiveX ist eine Methode. (IE-spezifisch natürlich.) Die anderen arbeiten über speziell gestaltete Weiterleitungs-URLs wie "http://bad.website.com/redirect.asp&expose_%ENVVAR%.htm". Der Browser erweitert ENVVAR, bevor er die neue URL zurück an den Server sendet. Der Server kann dann den Inhalt abrufen. Einige alte IE-Versionen verwendeten dies. Ich habe gerade überprüft, dass Firefox V31 und Internet Explorer 11 nicht anfällig dafür sind. Tonny vor 9 Jahren 0
@ grawity Ich habe gerade einen weiteren Test durchgeführt: IE11 erweitert% VAR%, aber die Var muss vorhanden sein. Wenn dies nicht der Fall ist (wie% 20% 20), wird es in Ruhe gelassen. Tonny vor 9 Jahren 0

2 Antworten auf die Frage

4
TTT

Du hast Recht. Das kaufmännische Und ist ein Sonderzeichen in der Windows-Befehlszeile. Um dies zu umgehen, verwenden Sie normalerweise das Einfügemarke (^) oder doppelte Anführungszeichen. Wenn keine dieser Aufgaben funktioniert (oder wenn Sie Ihr Kennwort tatsächlich nicht in die Befehlszeile eingeben), würde ich vorschlagen, Ihr Kennwort zu ändern.

Zum Beispiel:

C:\Windows\System32>echo a&b a 'b' is not recognized as an internal or external command, operable program or batch file.  C:\Windows\System32>echo a^&b a&b  C:\Windows\System32> 
Das `^` ist ein Caret *. [This] (http://i.stack.imgur.com/LlQIg.jpg) ist eine * Karotte *. Entschuldigung, ich konnte nicht widerstehen. Bob vor 9 Jahren 1
@ Bob Hehe. Thx, es ist behoben. TTT vor 9 Jahren 0
0
DavidPostill

Referenzsyntax : Escape-Zeichen, Trennzeichen und Anführungszeichen

^ Fluchtzeichen.

Wenn Sie das Escape-Zeichen vor einem Befehlssymbol einfügen, kann es als normaler Text behandelt werden. Wenn Sie eines dieser Zeichen weiterleiten oder umleiten, sollten Sie das Escape-Zeichen voranstellen: & \ <> ^ |

^\ ^& ^| ^> ^< ^^

So in der Windows - Shell - Befehl müssen Sie verwenden, ^&anstatt &die besondere Bedeutung der zu entkommen&