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

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

Ответить
Настройки темы
CMD/BAT - [решено] Ввод с клавиатуры значения в переменную

Новый участник


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

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


Хочу сделать bat файл, который выполняется только после ввода пароля. Как организовать это - не знаю.
Вот, что получилось.

@echo off
set /P var="Введите пароль: "
if var==565355 .....
....

Отправлено: 13:59, 06-01-2011

 

Аватара для El Sanchez

Ветеран


Contributor


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

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


river123,
Код: Выделить весь код
@echo off
set /P var="Введите пароль: "
if not "%var%"=="565355" exit /b 1
...

Последний раз редактировалось El Sanchez, 06-01-2011 в 21:15. Причина: исправление

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

Отправлено: 16:09, 06-01-2011 | #2



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

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


Старожил


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

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


Цитата:
if not "var"=="565355" exit /b 1
наверное
if not "%var%"=="565355" exit /b 1

Отправлено: 18:32, 06-01-2011 | #3


Аватара для El Sanchez

Ветеран


Contributor


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

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


kiripanda, ну да, конечно же. Исправил.

Отправлено: 21:16, 06-01-2011 | #4


Старожил


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

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


Держать пароль в открытом виде в батнике - нехорошо. Можно немного затруднить чтение пароля, например так:

Код: Выделить весь код
@Echo Off
Echo.
Echo.
Set /P $Input=  Введите пароль для продолжения ^>
Call :GetPswd
If Not "%$Input%"=="%$Pswd%" Cls&Echo Неправильный пароль, завершение работы&Ping -n 5 127.0.0.1>nul&Exit /B 1

Rem Тут код батника
Exit

:GetPswd
Set $Pswd=2545694053132554185
set $Pswd=%$Pswd:2=%
Set $Pswd=%$Pswd:~-0,13%
Set $Pswd=%$Pswd:54=%
Set $Pswd=%$Pswd:940=%
Set $Pswd=%$Pswd:135=%
Set $Pswd=%$Pswd%5
можно создать еще один батник с проверкой пароля, скомпилировать его в .exe и вызывать, а ответ (верный\неверный) передавать через ErrorCode. Но это все примитивная защита, рассчитанная на офисных работников, который батник второй раз в жизни видят. Если он будет использоваться для чего-то серьезного - запрос пароля не спасет.
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:59, 07-01-2011 | #5


Новый участник


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

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


Спасибо всем за ответы.

Отправлено: 13:42, 10-01-2011 | #6


Новый участник


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

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


может кому пригодиться...
при использовании данных команд внутри оператора IF следует (т.е. IF в IF, проверка в проверке):

1) в самом начале файла указать строку
Setlocal EnableDelayedExpansion

2) переменные внутри IF брать в восклицательные знаки !...!, а не в %...%

Отправлено: 15:44, 27-05-2018 | #7


Аватара для YuS_2

Crazy


Contributor


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

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


Цитата jackal-85:
переменные внутри IF брать в восклицательные знаки !...!, а не в %...% »
Не совсем так...
Переменные, для получения изменяемых значений внутри операторов "скобки", следует раскрывать с отложенным расширением, т.е. так:
Код: Выделить весь код
setlocal enabledelayedexpansion
set x=1
(
set x=2
echo x="%x%", "!x!"
)
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:08, 27-05-2018 | #8


Ветеран


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

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


вот здесь наглядно видно зачем и на каком, в принципе, этапе. требуется отложенное раскрытие:
Код: Выделить весь код
@echo off
set "a=x"
set "b=y"

if "%a%"=="x" (
 echo %%a%%=x: Так и есть, теперь далее
 if "%b%"=="y" (
  echo %%b%%=y: Тоже так и есть
  set "c=z"
 )
 setlocal enabledelayedexpansion
 echo Вот новая переменная %%с%% равная !c!
)
pause
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:17, 28-05-2018 | #9



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Вывод даты в переменную (bat) rootheaven Скриптовые языки администрирования Windows 6 23-07-2017 20:21
CMD/BAT - [решено] Не учитывать переменную siss Скриптовые языки администрирования Windows 4 17-09-2010 13:40
Ввод строки с клавиатуры DJ@XON Программирование в *nix 1 06-07-2009 22:25
Подскажите системную переменную z3f Microsoft Windows NT/2000/2003 10 25-11-2004 16:34
как в JavaScript передать переменную? Guest Вебмастеру 8 25-08-2004 13:33




 
Переход