Fehler: "|" unerwartet war in dieser Zeit batch-Skript
Wenn ich dieses Skript ausführen, erhalte ich
| war unerwartet zu diesem Zeitpunkt.
Dies ist der code:
@ECHO Off
REM Mapeo de unidad U, path de usuario
net use u: \\server\usuarios\%username%
pause
REM ***** Description group ****
for /f %%i in ('net user %username% /domain | find /i /c Group') do set RESULT=%%i
echo %RESULT%
pause
In for
Satz i
verwenden "
und '
, aber ich habe immer noch Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den Zustand im inneren der
for
müssen analysiert werden, indem die batch-parser, bevor es übergeben Sie es an den IN () - Klausel als eines ausführbaren Befehls, und da das Rohr ist ein spezielles Zeichen in DOS, müssen Sie die Verwendung von escape-Zeichen(^) vor dem Rohr zu bewahren, während die erste Gruppe der Parsen, wie unten gezeigt:for
Befehl Zeile Lesen, der parser findet ein pipe-Zeichen, die nicht im inneren eingeschlossen eine Zeichenfolge in Anführungszeichen ein. In diesem Fall-parser interpretiert wird, es ist ein Rohr Schöpfung Anfrage, undfor
Befehlszeile ist in zwei Teile gespalten zu erstellen, die angegebene Leitung. Aber das ist nicht das, was notwendig ist in diesem Fall, die Pfeife ist nicht Bestandteil derfor
Befehl. Rohr wird in die Befehl erzeugt die Ausgabe, die wird gelesen von derfor /f
Befehl. Und um zu signalisieren, dass der parser, pipe-Zeichen maskiert. So, der parser nicht versuchen, teilen Sie diefor
Befehl an das pipe-Zeichen.Müssen Sie scape das Rohr char innerhalb
for
Befehl. Es sollte^|