我创建了一个批处理文件,如下所示
@echo off
echo Type Below Requirements:
echo.
:username
set /p usr= Type Username:
if %usr%==[%1]==[] goto username
echo Your username is: %usr%
pause
当我输入任何文本时,这是完美的工作,但如果我输入“批处理是自动退出。
答案 0 :(得分:2)
这是另一种方式:
@echo off
echo Type Below Requirements:
echo.
:username
set "usr="
set /p "usr= Type Username: "
if not defined usr goto :username
echo Your username is: %usr%
pause
答案 1 :(得分:0)
首先,比较表达式语法if %usr%==[%1]==[]
是错误的,它应该改为if [%usr%]==[]
。
其次,要正确处理双引号,您需要启用delayed expansion。
以下内容应该有效:
@echo off
setlocal EnableDelayedExpansion
echo Type Below Requirements:
echo.
:username
set usr=
set /p usr= Type Username:
if [!usr!]==[] goto username
echo Your username is: !usr!
pause