Команда Powershell, используемая в файле BAT, удаляет управляющий символ, доступный в пароле, указанном пользователем в консоли, и сохраняет его в файле.
У меня есть сценарий BAT, который предлагает пользователю указать парольв консоли.Пароль должен быть замаскирован как *****, когда пользователь вводит его в консоли.Пароль будет что-то вроде wel! 123.Этот пароль сохраняется в переменной и, наконец, копируется в текстовый файл.Я получил несколько предложений использовать приведенный ниже код в моем BAT-файле, но экранирующий символ в фактическом пароле (Wel! 123) удаляется и сохраняется пароль как Wel123 в файле login.txt.
SetLocal
set "psCmd=powershell -Command "$pwd = read-host 'Enter Your Password' -
AsSecureString; $BSTR=
[System.Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd);
[System.Runtime.InteropServices.Marshal]::PtrToStringAuto($BSTR)""
for /F "usebackq delims=" %%# in (`%psCmd%`) do set "pwd=%%#"
@echo %pwd%>>login.txt