批处理文件拒绝空白条目不起作用

时间:2015-05-06 20:45:51

标签: windows batch-file if-statement cmd

我正在处理一些代码,我需要拒绝空白值但接受其他所有内容;我无法做到这一点......有没有人有指针,或者甚至可以为我填写......

: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

1 个答案:

答案 0 :(得分:2)

%username%是一个预先存在的系统变量 - 它是xxx中的C:\Users\xxx

您可以在脚本的持续时间内更改它,但如果您尝试使用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.