簡體   English   中英

如何使用批處理文件將IP地址轉換為整數

[英]How to convert IP address to integer using batch file

我有2個問題陳述

1:

我需要從文本文件中讀取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"它將無法正常工作。

2:

我必須運行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

我不確定是否可以使用批處理文件,如果這樣做沒有道歉,請向我道歉。

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所建議,如果您需要從當前地址開始,請將增量移到call語句后面。

TripeHound提到elzoologico的解決方案已擴展以避免“溢出”問題,

@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 
  )
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM