Batch file 我需要批处理来创建尽可能多的变量
例如:Batch file 我需要批处理来创建尽可能多的变量,batch-file,Batch File,例如: :loop set n=0 set m=254 set /a n+=1 ping -n 1 -w 500 xxx.xxx.xxx.%n% | find /i "reply" > file =====BELOW is what I need===== set a=0 set /a a+=1 set %a%= < file ====ABOVE is what I need===== if %n% lss %m% goto loop :循环 设置n=0 设置m=254 设置
:loop
set n=0
set m=254
set /a n+=1
ping -n 1 -w 500 xxx.xxx.xxx.%n% | find /i "reply" > file
=====BELOW is what I need=====
set a=0
set /a a+=1
set %a%= < file
====ABOVE is what I need=====
if %n% lss %m% goto loop
:循环
设置n=0
设置m=254
设置/a n+=1
ping-n 1-w 500 xxx.xxx.xxx.%n%|查找/i“回复”>文件
======下面是我需要的=====
设置a=0
设置/a a+=1
设置%a%=<文件
上面是我需要的=====
如果%n%lss%m%goto循环
因此,我特别需要一个批处理脚本,它可以使变量的数量达到循环的数量。我寻找了很多答案,甚至自己尝试了一些想法。。。但我想不出这个。。。因为我是ubuntu用户,所以我想我缺乏批处理知识,所以我不会赢。提前谢谢。问候
@echo off
setlocal enableextensions disabledelayedexpansion
for /l %%n in (1 1 254) do (
for /f "tokens=*" %%r in (
'ping -n 1 -w 500 xxx.xxx.xxx.%%n ^| find "reply" '
) do set "a[%%n]=%%r"
)
set a[
endlocal
这使用for/f
来运行命令(ping | find
),并将命令的输出(ping响应的1行,由find
过滤)分配给名称中带有递增数字的变量
设置一个[
用于在控制台上显示结果数据
这使用for/f
来运行命令(ping | find
),并将命令的输出(ping响应的1行,由find
过滤)分配给名称中带有递增数字的变量
set a[
用于在控制台上显示结果数据用于/L,而不是带有GOTO的set/a
使用FOR/F来处理命令的结果,而不是临时文件和设置/p
使用精心构造的变量名来模拟数组(在本例中可能是稀疏数组)
使用FOR/L代替带GOTO的SET/A 使用FOR/F来处理命令的结果,而不是临时文件和设置/p 使用精心构造的变量名来模拟数组(在本例中可能是稀疏数组)
请告诉我你想在“set%a%=
-2
似乎是一个打字错误。-2
似乎是一个打字错误。
for /l %%N in (1 1 255) do (
for /f "delims=" %%A in (
'ping -n 1 -w 500 xxx.xxx.xxx.%%N^|find /i "reply"'
) do set "addr[%%N]=%%A"
)
@echo off
if exist Pingresult.txt del Pingresult.txt
for /l %%n in (1 1 254) do ping -n 1 -w 500 xxx.xxx.xx.%%n | find /i "reply" >>PingResult.txt