我有2个问题陈述
我需要从文本文件中读取IP地址并将值递增1并将其存储在变量中。这就是我要使用批处理脚本所做的一切。
这就是我的文本文件的样子 -
MyIpAddressList.txt
192.168.1.105
我能够将其读作字符串和存储&打印它
for /f "delims=" %%x in (IPADDRESSLIST.txt) do set /p IPAddress=%%x+1
ECHO %IPAddress%
但是,当我尝试将其作为提及set /a IPAddress=%%x+1"
的数字阅读时,它确实无效。
我必须运行一次循环100次并将此IP地址作为另一个批处理脚本的输入传递,并将此ip地址增加1。 示例:
Main_Batch_File.bat
READ MyIpAddressList.txt and store IP address in IPAddress
IPAddress = 192.168.1.105
LOOP 100 times
CALL Another_Batch_Script(IPAddress)
IPAddress++
LOOP END
我不确定是否可以使用批处理文件并道歉,如果这没有意义。
答案 0 :(得分:2)
setlocal enabledelayedexpansion
for /f "tokens=1,2,3,4 delims=." %%a in (%ipaddress%) do (
set/a suffix=1%%d-1000
for /l %%i in (1,1,100) do (
set/a suffix+=1
call "yourscript.bat" %%a.%%b.%%c.!suffix!
)
首先我们将 ipaddress 拆分为四个令牌。然后处理第四个。
set/a suffix=1%%d-1000
避免低于100(即080)的数字被视为八进制
编辑:正如TripeHound建议的那样,如果你需要从当前地址开始,请在调用语句后面移动增量。
答案 1 :(得分:0)
@echo off
set ipaddress=192.168.001.015
setlocal enabledelayedexpansion
for /f "tokens=1-4 delims=." %%a in ("%ipaddress%") do (
set /a suffix=1%%d-1000
set /a final=suffix+100
if !final! gtr 255 set final=255
for /l %%i in (!suffix!,1,!final!) do (
ECHO call "yourscript.bat" %%a.%%b.%%c.%%i
)
)