我正在处理一些代码,我需要拒绝空白值但接受其他所有内容;我无法做到这一点......有没有人有指针,或者甚至可以为我填写......
: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 :(得分: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.