ich den Code unten habe:Senden Parameter mit Sonderzeichen in einer anderen Batch-Datei aus einer Batch-Datei
second.bat
Datei
echo %~1
echo %~2
first.bat
Datei
@ECHO OFF &SETLOCAL
@SETLOCAL EnableExtensions EnableDelayedExpansion
set /p User=Enter Username:
set /p Password=Enter Password:
call second.bat %User% %Password%
Wenn Benutzer Eingaben Admin
als Benutzername und Admin!23
als Passwort die Ausgabe in second.bat
Echo erzeugt wird, ist wie folgt:
Admin Admin23
Wie kann ich die Sonderzeichen als auch in der second.bat
Datei wie unten bekommen?
Admin Admin!23
Ihre 'call'ed-Routine erbt sowohl die Variablen als auch den' expansion' -Status. In Ihrer zweiten Routine können Sie einfach 'set user' und' set password' setzen, um die tatsächlichen Werte zu sehen. Wenn Sie diese Werte in der zweiten Routine ändern, wird der geänderte Wert an die aufrufende Routine zurückgegeben. Da "delayedexpansion" wirksam ist, wird ein einfaches "echo" versuchen, sein Argument gemäß den normalen Regeln zu erweitern. Um das '!' Zu verwenden, müssen Sie 'delayedexpansion' ausschalten - entweder vor dem Aufruf der zweiten Routine oder innerhalb der zweiten Routine. – Magoo