Ввод переменной с клавиатуры
Здравствуйте.
Помогите разобраться. Необходимо ввести значение переменной с клавиатуры.
Имеется следующий код:
Код:
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, то все работает.
Где я допустил ошибку?
Спасибо
|
Вопрос решен, тему можно убить, спасибо
Код:
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
|
Цитата:
Цитата Michael
set /p MY_SELECT="Дайте ответ: " »
|
Ух, вот оно не паханное поле
|
Можно просто нажать ввод ничего не вводя, можно ввести что угодно, например забыть переключить язык и вместо "Y/y" будет "Н/н", ну и т.д.
|
Проверка ввода (Y/y или все прочее) будет сделана дальше. Просто в процессе написания батника столкнулся с проблемой, которую не смог решить (пустая переменная), поэтому анализ ввода пока отсутствует. Или вы не об этом?
|
Цитата:
Цитата Michael
столкнулся с проблемой, которую не смог решить (пустая переменная) »
|
Не совсем понял, если про ввод, то переменную можно предопределить:
Код:
@echo off
setlocal
set "input=y"
set /p input="Enter Y/n: "
if /i not "%input%"=="n" (echo Y) else (echo N)
|
Время: 21:07.
© OSzone.net 2001-