在令牌分隔符批处理文件中使用百分号

Using percent symbol in token delimiter batch file

提问人:togarha 提问时间:6/2/2016 更新时间:6/2/2016 访问量:498

问:

我正在尝试使用 windows7 中的批处理文件(通过 netsh 命令)从接口获取 ipV6 地址,但我不知道如何将 % 作为分隔符: 这就是为什么我有:

FOR /F "tokens=1,2,3 delims= " %%A IN ('netsh int ipv6 show address "%IFACEWAN%" ^| FIND "Parameters"') DO (
    SET WANNIC.IPV6=%%B
)

结果是:

WANNIC.IPV6=0000::aaaa:bbbb:cccc:dddd%12

但我想从结果中删除最后的“%12”。我尝试使用%作为分隔符,但它不起作用:

| was unexpected at this time.

我尝试使用 %%、^% 和其他,但我没有结果。 如何使用此符号作为分隔符?还有其他方法可以删除此部分吗?

谢谢

Windows 批处理文件

评论


答:

3赞 npocmaka 6/2/2016 #1

您需要将其加倍,并将空格保留为最后一个分隔符:

FOR /F "tokens=1,2,3 delims=%% " %%A IN ('netsh int ipv6 show address "%IFACEWAN%" ^| FIND "Parameters"') DO (
    SET WANNIC.IPV6=%%B
)

例如,这条线对我有用:

for /f "tokens=1,2,3,4,5 delims=%% " %%a in ('netsh int ipv6 show address^|find /i "infinite"') do echo %%e

评论

1赞 togarha 6/2/2016
我尝试了%%,但没有将空格作为最后一个分隔符,然后它不起作用。我没想过要改变顺序,这就是诀窍