如何读取文件中的 ips 并为每个 ips 分配一个变量

How to read ips in a file and assign each one with a variable

我有一个文件 ip.txt 每行一个 ips 和超过 400 个 ips 如下

10.xx.xx.111
10.xx.xx.113

如何将它们中的每一个分配给一个单独的变量,如 ip1=第一行 ip、ip2=第二行 ip 等等最后一个 ip。该文件本身没有分隔符,每行只有一个 ip。

我尝试了以下批次

@echo off
echo.
for /f "tokens=1*" %%A in (ip.txt) Do Set "%%A=%%B"
set | find /i "10="

但是没有用。谁能帮帮我?

好吧,根据我的理解,根据您的评论,您只是想要一个像这样的直接循环,为文件中列出的多个行执行单个任务:

@for /f %%i in (ip.txt) Do @echo %%i

它将获取每个 ip 并用它做一些事情,在这种情况下 echo 它。

然后您显然需要对 IP 执行其他操作,例如 ping 它、连接到它等,例如:

@for /f %%i in (ip.txt) Do @ping %%i

或者在代码块中对其执行多项操作:

@echo off
for /f %%i in (ip.txt) Do (
      echo %%i
      ping %%i
      nslookup %%i
)

如果你真的想将它设置为可验证的,这里真的不需要,你可以这样做,但是要在代码块内部使用 echo 等,你需要 delayedexpansion:

@echo off
setlocal enabledelayedexpansion
for /f %%i in (ip.txt) Do (
      set "ip=%%i"
      echo !ip!
      ping !ip!
      nslookup !ip!
)