Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] поправить строки под x64

Ответить
Настройки темы
CMD/BAT - [решено] поправить строки под x64

Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Изменения
Автор: c4uran
Дата: 02-08-2015
в огромном скрипте есть блок отвечающий за ввод пароля и от греха по дальше скрывающий символы ввода:

Код: Выделить весь код
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 или альтернативным способом скрыть вводимые символы с экрана в переменную?

Отправлено: 10:31, 31-07-2015

 

Аватара для NickM

Ветеран


Contributor


Сообщения: 4533
Благодарности: 1078

Профиль | Отправить PM | Цитировать


Какая ошибка? И с чего Вы взяли что in.com не существует? Вы Сами его созадете и заполняете символами в первой строке приведенного Вами кода.

Отправлено: 11:33, 31-07-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Ветеран


Сообщения: 2196
Благодарности: 727

Профиль | Отправить PM | Цитировать


Цитата c4uran:
похоже 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

Последний раз редактировалось sov44, 31-07-2015 в 11:59.


Отправлено: 11:52, 31-07-2015 | #3


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата c4uran:
на x64 системах вываливает ошибку, похоже in.com... в x64... не работает »


Да, это так.




Цитата c4uran:
Возможно ли переписать этот блок под 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
.

Последний раз редактировалось Georgio, 02-08-2015 в 01:54.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:31, 31-07-2015 | #4


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


sov44 не очень понял ваш код он сравнивает веденый пароль с тем что в файле

Georgio метод работает(это безумие даже понять не могу как такое пришло вам в голову), спасибо, это конешн круто как я понимаю альтернатив больше нет?

Отправлено: 15:57, 01-08-2015 | #5


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата c4uran:
как я понимаю альтернатив больше нет? »
PowerShell. Написать свой или перекомпилировать in.com под новую архитектуру.

Отправлено: 18:36, 01-08-2015 | #6


Ветеран


Сообщения: 874
Благодарности: 575

Профиль | Отправить PM | Цитировать


Цитата Iska:
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
.
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:16, 02-08-2015 | #7


Пользователь


Сообщения: 122
Благодарности: 6

Профиль | Отправить PM | Цитировать


Georgio,
ТЫСЯЧА СПАСИБО ТО ЧТО НУЖНО!!!! ГЕНИАЛЬНО!!!

если не сложно поясните пожалуйста код powershell, что делает каждый вызов

Отправлено: 12:26, 02-08-2015 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] поправить строки под x64

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Поправить драйвер XP под WIN7x64? SergioBS Тест-форум 1 22-07-2015 18:14
Установка - Установка Win7 x64 на программный RAID 0 из под уже установленной XP x64 NektoN1 Microsoft Windows 7 11 17-09-2013 23:34
Печать - Общий принтер под x86; клиент под x64; Tonny_Bennet Сетевые технологии 5 04-09-2013 16:51
Импорт параметров реестра (*.reg) из коммандной строки для Windows XP-7 x86-x64 olmak Автоматическая установка приложений 1 24-10-2012 16:18
[решено] HUAWEI EC226 - драйвер для Windows Vista x64 есть а под XP x64 нету - как решить? crashtuak Поиск драйверов, прошивок и руководств 3 16-08-2009 21:32




 
Переход