如何读取文件中的 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!
)
我有一个文件 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!
)