Добавить в корзинуПозвонить
Найти в Дзене

BAT скрипт — скрыть вводимый пароль

Понадобилось модифицировать пакетный BAT скрипт таким образом, чтобы на экране не отображался ввод пароля. Планировалось демонстрировать работу скрипта на экране, при этом нужно было не светить вводимый пароль. Чисто средствами пакетных файлов решить вопрос не удалось, но удалось найти вариант, когда для ввода пароля BAT файл использует скрипт PowerShell. Выглядит это так: Используются два файла. getpwd.ps1: $password = Read-Host " " -AsSecureString
$password = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto($password)
echo $password И maskedpass.bat: @echo off
:: кодировка UTF8
chcp 65001 >nul
cd %~dp0
<nul: set /p passwd=Введите пароль
for /f "delims=" %%i in ('powershell -file getpwd.ps1') do set passwd=%%i
echo.
echo Вы ввели %passwd%
pause
exit Не самое красивое решение и не все желаемые функции реализованы как надо. Но пароль маскируется звёздочками, поддерживается редактирование через Backspace. Жела

Понадобилось модифицировать пакетный BAT скрипт таким образом, чтобы на экране не отображался ввод пароля. Планировалось демонстрировать работу скрипта на экране, при этом нужно было не светить вводимый пароль.

Чисто средствами пакетных файлов решить вопрос не удалось, но удалось найти вариант, когда для ввода пароля BAT файл использует скрипт PowerShell. Выглядит это так:

-2

Используются два файла. getpwd.ps1:

$password = Read-Host " " -AsSecureString
$password = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($password)
$password = [Runtime.InteropServices.Marshal]::PtrToStringAuto($password)
echo $password

И maskedpass.bat:

@echo off
:: кодировка UTF8
chcp 65001 >nul
cd %~dp0
<nul: set /p passwd=Введите пароль
for /f "delims=" %%i in ('powershell -file getpwd.ps1') do set passwd=%%i
echo.
echo Вы ввели %passwd%
pause
exit

Не самое красивое решение и не все желаемые функции реализованы как надо. Но пароль маскируется звёздочками, поддерживается редактирование через Backspace. Желаемый результат достигнут.

Можно допиливать напильником под свои нужды.

Источник:

BAT скрипт — скрыть вводимый пароль | internet-lab.ru

💰 Поддержать проект

Если вам понравилась статья, то ставьте 👍🏻 каналу.
Пишите комментарии, задавайте вопросы, подписывайтесь.