Batch file 批处理文件循环
我正在创建一个小的批处理文件,以自动化我们每天使用的一些网络疑难解答命令 我创建了一个简单的菜单,但当我尝试运行循环命令时,它会出错,无法完成循环。选项1(测量)运行良好,但PINGER部分只是停止命令提示符,而不做任何操作Batch file 批处理文件循环,batch-file,Batch File,我正在创建一个小的批处理文件,以自动化我们每天使用的一些网络疑难解答命令 我创建了一个简单的菜单,但当我尝试运行循环命令时,它会出错,无法完成循环。选项1(测量)运行良好,但PINGER部分只是停止命令提示符,而不做任何操作 SET /P M=Type 1, 2, 3, or 4 then press ENTER: IF %M%==1 GOTO SURVEY IF %M%==2 GOTO PINGER IF %M%==3 GOTO MAP IF %M%==4 GOTO EOF :SURVEY
SET /P M=Type 1, 2, 3, or 4 then press ENTER:
IF %M%==1 GOTO SURVEY
IF %M%==2 GOTO PINGER
IF %M%==3 GOTO MAP
IF %M%==4 GOTO EOF
:SURVEY
echo 3 Point WiFi Survey... Please Wait...
echo ===================================================================================================== >> surveyresults.txt
echo 3 Point WiFi Survey Results >> surveyresults.txt
netsh wlan show networks bssid >> surveyresults.txt
echo 3 Point WiFi Survey Complete
echo ===================================================================================================== >> surveyresults.txt
GOTO MENU
:PINGER
echo Pinging Devices on Subnet... Please Wait...
echo ===================================================================================================== >> surveyresults.txt
echo Device Pings >> surveyresults.txt
FOR /L %i IN (1,1,254) DO ping -a -n 1 192.168.1.%i | FIND /i "Reply" >> surveyresults.txt
echo Pinging Complete
echo ===================================================================================================== >> surveyresults.txt
GOTO MENU
:EOF
您的脚本有两个主要问题
SET/p
。您应该使用选项
实用程序。打开命令提示窗口,键入choice/?
,然后按ENTER键查看其使用信息
for
命令的帮助信息,for/?
,其中特别说明要在批处理程序中使用for命令,请指定%%variable而不是%variable
%SystemRoot%\System32\choice.exe/C 1234
如果错误级别4转到:EOF
如果错误级别3转到地图
如果错误级别2转到PINGER
:调查
(Echo 3点WiFi调查…请稍候…>CON
回音=====================================================================================================
Echo 3点WiFi调查结果
%SystemRoot%\System32\netsh.exe WLAN显示网络BSSID
Echo 3点WiFi调查完成>CON
回音=====================================================================================================
)>>“surveyresults.txt”
转到菜单
:PINGER
(回显子网上的ping设备…请稍候…>CON
回音=====================================================================================================
回声设备ping
对于(1,1254)中的/L%%G,请执行%SystemRoot%\System32\PING.EXE-a-n 1 192.168.1.%%G |%SystemRoot%\System32\find.EXE/i“回复”
回声ping完成>CON
回音=====================================================================================================
)>>“surveyresults.txt”
转到菜单
批处理文件要求将for循环元变量的%
字符加倍转义%%i
科林,你已经访问过了,并且在两个多小时前看到了我的答案!虽然你已经成为这个网站的成员足够长的时间了,作为一个复习者,请阅读以了解你可以选择的选项。不太确定你在那里谈论什么-我已经看到了我问题的答案。第二天-不是你建议的2小时前。我在你的个人资料Colin中查看了你最后一次看到的时间,这是34分钟前发布此帖子的时间,即2021-04-13@12:12:54Z。根据您上面的评论,即2021-04-13@12:14:35Z,这表明了数据的准确性。没有正当理由访问一个只有一个实时问题的站点,在那里您将清楚地看到您的问题已被回答的通知,而不是查看该答案。我对数据感到满意,数据表明您确实看到了我的答案,并且在两小时内没有提供任何反馈。感谢您将其标记为已接受。