在windows ms-dos批处理文件中实现for循环或while循环

时间:2010-12-06 20:49:49

标签: batch-file

我创建用户的编码如下:

@echo off
echo.
echo     SELECT OPTION
echo     -------------
echo.
:menu
echo     1- Create username
echo     2- Create password
echo     3- Delete username
echo     4- Exit
echo.
pause
set /p option=enter option 1 2 3 or 4:
if "%option%"=="1" goto createuser
if "%option%"=="2" goto createpass
if "%option%"=="3" goto deluser
if "%option%"=="4" goto exit

:createuser
echo Enter username
set /p var=Username:
net user %var% /add
echo Username successfully entered
goto exit

:createpass
echo Enter password
set /p var=Username:
net user %var% *
echo Password successfully entered
goto exit

:deluser
echo Enter user to be deleted
set /p var=Username:
net user %var% /del
echo User successfully deleted
goto exit

:exit

它在测试时成功运行,但想知道如何成功实现for循环以查看用户是否输入了数字1-4之外的任何选项,例如错误。还有一个用于成功添加用户的for循环,如果他们想要创建另一个用户或退出该程序。

2 个答案:

答案 0 :(得分:1)

在每个部分之后,您可以将goto exit更改为goto menu并添加

echo Error: Choose 1, 2, 3, or 4
goto menu

:createuser之前

答案 1 :(得分:1)

for循环由以下部分组成:

- 用于计算循环次数的变量
- 实际内容
- 增加循环计数器变量
的一行 - 如果循环计数器超出某个值,则在循环中执行GOTO的if语句 -GOTO转到循环的开头

这样的东西
set /p count = 0
:loopstart
doStuff
set count = count + 1
if %count%==10 GOTO loopend
GOTO loopstart

while循环是一回事,除了不计算循环计数器,你替换其他一些条件,如if %option%=="quit" GOTO loopend

希望您能根据此信息获得所需内容。对不起,如果我的语法不完善,我不经常使用批处理文件。