我要做的是通过cmd配置一些vlan范围。到目前为止,我所做的是检索域控制器的IP地址并删除值前面的空格。我使用以下命令完成了这个:
通过本地cmd提取IP地址 for / f“tokens = 2 delims =:”%i in('ipconfig ^ | find / i“IPv4 Address”')do ip_address =%i
示例结果:set ip_address = 10.0.0.25
rem从ip address var中删除空格 set ip_address =%ip_address:=%
echo%ip_address%现在导致10.0.0.25没有前面的空格。
接下来我要做的是将ip_address变量拆分为单独的八位字节变量,以便可以对所选的八位字节执行算术运算。
例如:10.0.0.25然后可以被操纵以反映10。[+ 100] .0。[ - 24]
所需的结果将是10.100.0.1
我更倾向于使用Windows命令行严格执行此操作,但如果有更好的方法退出,我愿意接受建议。
提前致谢 乔尔
答案 0 :(得分:3)
尝试将八位字节拆分为变量。
@echo off
set "ip=10.0.0.25"
SET "offsets=0.100.0.-24"
@echo off
for /f "tokens=1-4 delims=. " %%a in ("%ip%") do (
set octetA=%%a
set octetB=%%b
set octetC=%%c
set octetD=%%d
)
FOR /f "tokens=1-4 delims=." %%a in ("%offsets%") do (
SET /a octetA+=%%a
SET /a octetB+=%%b
SET /a octetC+=%%c
SET /a octetD+=%%d
)
echo "%octetA%","%octetB%","%octetC%","%octetD%"
pause
答案 1 :(得分:1)
这与foxidrive的解决方案相同,但稍微压扁了......:)
@echo off
set "ip= 10.0.0.25"
SET "offsets=0.100.0.-24"
for /F "tokens=1-4 delims=. " %%a in ("%ip%") do (
for /F "tokens=1-4 delims=." %%i in ("%offsets%") do (
set /A octetA=%%a+%%i, octetB=%%b+%%j, octetC=%%c+%%k, octetD=%%d+%%l
)
)
echo "%octetA%","%octetB%","%octetC%","%octetD%"
pause
答案 2 :(得分:-1)
您知道autohotkey吗?
此外,您可以尝试powershell script。