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

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

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

Экзорцист


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

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


Здравствуйте.
Помогите разобраться. Необходимо ввести значение переменной с клавиатуры.
Имеется следующий код:
Код: Выделить весь код
echo off
rem переменная, определяющая имя удаленного компьютера с базой данных
set PC=PC_NAME
rem переменная, определяющая каталог хранения базы данных на удаленном компьютере
set BASE=BASE_NAME
echo Копирование данных с %PC%
xcopy /s /q \\%PC%\c$\%BASE%\* ..\%DATE%\%BASE%\
echo ERRORLEVEL после копирования %ERRORLEVEL%
set MY_ERRORLEVEL=%ERRORLEVEL%
echo MY_ERRORLEVEL=%MY_ERRORLEVEL%
if %MY_ERRORLEVEL%==0 	(
	echo NO_ERROR>>my.txt
	exit
				) else 	(
		echo Повторим копирование?
		echo Сотрудник должен выйти из базы
		echo Для продолжения нажмите Y или y
		set /p MY_SELECT="Дайте ответ: "
		echo MY_SELECT=%MY_SELECT%
						)
pause
pause
exit
При ошибке копирования должен произойти ввод с клавиатуры, но переменная пустая:

При этом, если сделать вывод значения переменной MY_SELECT за пределами блока if, то все работает.
Где я допустил ошибку?
Спасибо

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

 

Экзорцист


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

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


Вопрос решен, тему можно убить, спасибо
Код: Выделить весь код
echo off
setlocal enabledelayedexpansion
rem переменная, определяющая имя удаленного компьютера с базой данных
set PC=PC_NAME
rem переменная, определяющая каталог хранения базы данных на удаленном компьютере
set BASE=BASE_NAME
echo Копирование данных с %PC%
xcopy /s /q \\%PC%\c$\%BASE%\* ..\%DATE%\%BASE%\
echo ERRORLEVEL после копирования %ERRORLEVEL%
set MY_ERRORLEVEL=%ERRORLEVEL%
echo MY_ERRORLEVEL=%MY_ERRORLEVEL%
if %MY_ERRORLEVEL%==0 	(
	echo NO_ERROR>>my.txt
	exit
				) else 	(		
		echo Повторим копирование?
		echo Сотрудник должен выйти из базы
		echo Для продолжения нажмите Y или y
		set /p MY_SELECT="Дайте ответ: "
		echo MY_SELECT=!MY_SELECT!
						)
endlocal
pause
pause
exit

Отправлено: 16:19, 10-02-2015 | #2



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

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


Ветеран


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

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


Цитата Michael:
set /p MY_SELECT="Дайте ответ: " »
Ух, вот оно не паханное поле

Отправлено: 17:26, 10-02-2015 | #3


Экзорцист


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

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


Цитата Foreigner:
не паханное поле »
почему?

Отправлено: 18:05, 10-02-2015 | #4


Ветеран


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

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


Можно просто нажать ввод ничего не вводя, можно ввести что угодно, например забыть переключить язык и вместо "Y/y" будет "Н/н", ну и т.д.

Отправлено: 18:13, 10-02-2015 | #5


Экзорцист


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

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


Проверка ввода (Y/y или все прочее) будет сделана дальше. Просто в процессе написания батника столкнулся с проблемой, которую не смог решить (пустая переменная), поэтому анализ ввода пока отсутствует. Или вы не об этом?

Отправлено: 18:48, 10-02-2015 | #6


Ветеран


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

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


Цитата Michael:
столкнулся с проблемой, которую не смог решить (пустая переменная) »
Не совсем понял, если про ввод, то переменную можно предопределить:
Код: Выделить весь код
@echo off
setlocal

set "input=y"
set /p input="Enter Y/n: "
if /i not "%input%"=="n" (echo Y) else (echo N)

Отправлено: 19:20, 10-02-2015 | #7



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
2008 R2 - [решено] Чудо-Ввод с клавиатуры prohorp Windows Server 2008/2008 R2 12 31-10-2013 07:23
CMD/BAT - [решено] Ввод Вывод, присвоение значения переменной из файла Loki3D Скриптовые языки администрирования Windows 1 03-09-2013 15:34
CMD/BAT - [решено] Ручной ввод переменной foma24 Скриптовые языки администрирования Windows 2 04-06-2013 16:59
C/C++ - Потоковый ввод и ввод с клавиатуры. Рекурсия lerenia Программирование и базы данных 14 15-05-2013 14:07
Ввод строки с клавиатуры DJ@XON Программирование в *nix 1 06-07-2009 22:25




 
Переход