2015-05-06 2 views
1

Я работаю через некоторый код, и мне нужно отклонить пустое значение, но принять все остальное; Я не могу видеть, чтобы сделать это ... Кто-нибудь есть указатели, или даже заполнить его для меня ...Batch file reject blank entry not working

:2 
REM Basic account creation 
echo Welcome to basic account creation. 

REM user enters details 
REM Username 
echo Please Enter a Username 
set /p username= 
if "%username%"=="" (
goto 2 
) else if not "%username%"=="" (
echo. 
REM Real Name 
echo Please enter your full name 
set /p fullname= 
echo. 
REM Password 
echo Please enter a password 
set /p password= 
echo. 
) 
REM Save to file 
if exist %username%.log (
echo User name already exists, please enter a new user name to create an account, or return to the log in screen  
    goto 1 
) else (
    echo %fullname% >> %username%.log 
    echo %password% >> %username%.log 
    echo %date% %time% >> %username%.log) 
timeout /t 2 /nobreak > NUL 
REM pause 
if exist %username%.log (
echo.) 
timeout /t 1 /nobreak > NUL 
    goto 6 
+0

'% username%' уже является системной переменной. Назовите это чем-то другим. – SomethingDark

+0

@SomethingDark Мне нужно убедиться, что переменная '% username%' не пуста, поэтому я не могу называть ее чем-то другим, или я могу? :/ – Badja

+0

Могу сказать, что переменная с именем '% username%' не может быть пустым, потому что она зарезервирована Windows, поэтому вам нужно называть ее чем-то другим, чтобы ваш скрипт работал правильно. – SomethingDark

ответ

2

%username% является предсуществующая системной переменной - это в C:\Users\xxxxxx.

Вы можете изменить его на время выполнения скрипта, но если вы попытаетесь установить его с помощью set /p, а затем ничего не вводите, значение останется прежним значением вашего имени пользователя Windows.

Вы можете обойти это, изменив имя переменной %username% в вашем скрипте на что-то еще (см. Вывод set для списка существующих переменных).

echo Please Enter a Username 
set /p user_name= 
if "%user_name%"=="" (
goto 2 
) else if not "%user_name%"=="" (
echo.