Пакетный файл неожиданно завершает работу при нажатии клавиши ввода

В настоящее время я пишу командный файл, чтобы пользователи могли ввести серийный номер телефона. Я написал следующее:

set /p sernumoftel1="Enter Serial Number of the First Telephone: "
set /p sernumoftel2="Enter Serial Number of the Second Telephone (Press Enter Key To Skip If You DO NOT HAVE A Second Telephone): "

if not %sernumoftel1% == "" (
echo. > soe.txt
echo Serial Number of Telephone 1: >> soe.txt
echo %sernumoftel1% >> soe.txt
)


if not %sernumoftel2% == "" (
echo. >> soe.txt
echo Serial Number of Telephone 2: >> soe.txt
echo %sernumoftel2% >> soe.txt
)

echo You Are Done!
pause

Тем не менее, при втором вопросе, когда я нажал клавишу ввода, командная строка неожиданно завершилась без отображения "You Done!".

Что я сделал не так? Любая помощь оценена.

2 ответа

Решение

Используйте цитаты на if заявления

if not "%sernumoftel1%" == "" (....


if not "%sernumoftel2%" == "" (...

Вы также можете убедиться, что переменная определена после set /p.

 if not defined variable (
   echo Error: Variable empty!
   pause && exit
)
Другие вопросы по тегам