【问题标题】:How to split variables in batch files如何拆分批处理文件中的变量
【发布时间】:2014-10-23 21:41:15
【问题描述】:
我需要从变量中获取 IP,并替换最后 3 位数字。所以我需要它来获取 %IPvariable% 并删除最后三位数字并将前六位保存为其他变量。任何帮助深表感谢。 :)
【问题讨论】:
-
分享您的研究对每个人都有帮助。告诉我们您尝试了什么以及为什么它不能满足您的需求。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见how to ask
-
标签:
variables
batch-file
cmd
split
ip
【解决方案1】:
以命令行为例:
FOR /F "tokens=1-4 delims=." %G IN ("127.0.0.254") DO echo %G %H %I %J
在批处理文件中,您需要在变量前面添加一个额外的 %(即 %G --> %%G)
将 IP 分成 4 块后,您可以根据需要重新组装。
类似:
FOR /F "tokens=1-4 delims=." %G IN ("127.0.0.254") DO echo %G %H %I %J & set "var=%G.%H.%I" & echo %var%
您当然会用您的 %IPvariable% 替换“127.0.0.254”硬编码 IP。
有关 FOR /F 的更多详细信息,请参阅此:http://ss64.com/nt/for_f.html
【解决方案2】:
另一种方式,如果您确定始终是最后 3 位数字:
@echo off
Set "$ip=127.0.0.254"
set "$New=253"
set "$ipnew=%$ip:~0,-3%%$New%"
echo New IP = %$IpNew%
【解决方案3】:
这会将批处理文件中的最后一个八位字节更改为666。
for %%a in (%IPvariable%) do set IPvariable=%%~na.666