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

Ответить
Аватара пользователя
Michael

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

Сообщение Michael »

Здравствуйте.

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

Имеется следующий код:



Код:

Код: Выделить всё

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, то все работает.

Где я допустил ошибку?

Спасибо
Аватара пользователя
Michael

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

Сообщение Michael »

Вопрос решен, тему можно убить, спасибо



Код:

Код: Выделить всё

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
Аватара пользователя
Foreigner

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

Сообщение Foreigner »

Цитата Michael:



set /p MY_SELECT="Дайте ответ: "
CMD/BAT - [решено] Ввод переменной с клавиатуры




Ух, вот оно не паханное поле
Аватара пользователя
Michael

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

Сообщение Michael »

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

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

Сообщение Foreigner »

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

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

Сообщение Michael »

Цитата Michael:



столкнулся с проблемой, которую не смог решить (пустая переменная)
CMD/BAT - [решено] Ввод переменной с клавиатуры




Не совсем понял, если про ввод, то переменную можно предопределить:



Код:

Код: Выделить всё

@echo off
setlocal
set "input=y"
set /p input="Enter Y/n: "
if /i not "%input%"=="n" (echo Y) else (echo N)
Ответить

Вернуться в «Скриптовые языки администрирования Windows»