Показать полную графическую версию : [решено] поправить строки под x64
в огромном скрипте есть блок отвечающий за ввод пароля и от греха по дальше скрывающий символы ввода:
echo hP1X500P[PZBBBfh#b##fXf-V@`$fPf]f3/f1/5++u5>%tmp%\in.com
set /p= Entered symbols will be hide:<nul
for /f "tokens=*" %%i in ('%tmp%\in.com') do set "password=%%i"
del /q %tmp%\in.com>nul
на x64 системах вываливает ошибку, похоже in.com не существует в x64 или не работает
Возможно ли переписать этот блок под x64 или альтернативным способом скрыть вводимые символы с экрана в переменную?
Какая ошибка? И с чего Вы взяли что in.com не существует? Вы Сами его созадете и заполняете символами в первой строке приведенного Вами кода.
похоже in.com не существует в x64 или не работает »
не нужно создавать файл in.com, создайте обычный текстовик
@echo off
setlocal enabledelayedexpansion
echo 4568736219>%tmp%\pass.txt
:1
echo.
Set /p choice="Введите пароль: "
if not defined choice goto 1
for /f %%i in (%tmp%\pass.txt) do if not "%%i"=="choice" echo ошибка ввода& pause>nul& cls& goto 1
pause
exit
на x64 системах вываливает ошибку, похоже in.com... в x64... не работает »
Да, это так.
Возможно ли переписать этот блок под x64 или альтернативным способом скрыть вводимые символы с экрана в переменную? »
Возможно только применение альтернативной "технологии":
for /f "delims=" %%i in ('
mshta "about:<html><head><title>Your title</title></head><script language="javascript">function a(){new ActiveXObject('Scripting.FileSystemObject').GetStandardStream(1).Write(window.frm.t.value);close();}</script><body><center><br><br><br><br><br><br><br><br><br><br><form id='frm'><input type='password' name='t' size=12><input type='button' value='Entered symbols will be hide. Press this button after entering.' onclick='a();'></form></center></body></html>"
') do set password=%%i
.
sov44 не очень понял ваш код он сравнивает веденый пароль с тем что в файле
Georgio метод работает(это безумие даже понять не могу как такое пришло вам в голову), спасибо, это конешн круто как я понимаю альтернатив больше нет?
как я понимаю альтернатив больше нет? »
PowerShell. Написать свой или перекомпилировать in.com под новую архитектуру.
PowerShell. »
Угу. Например, так: $password = ($x = [System.Runtime.InteropServices.Marshal])::PtrToStringAuto($x::SecureStringToBSTR((Read-Host 'Entered symbols will be hide' -AsSecureString))).
Можно и в пакетный файл вставить:
for /f "delims=" %%i in ('
powershell "($x=[System.Runtime.InteropServices.Marshal])::PtrToStringAuto($x::SecureStringToBSTR((Read-Host 'Entered symbols will be hide' -AsSecureString)))"
') do set password=%%i
.
Georgio,
ТЫСЯЧА СПАСИБО ТО ЧТО НУЖНО!!!! ГЕНИАЛЬНО!!!
если не сложно поясните пожалуйста код powershell, что делает каждый вызов
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.