在批处理文件中使用百分号作为标记分隔符

3

我正在尝试使用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.

我尝试使用 %% 、^% 等符号,但没有结果。如何使用这些符号作为分隔符?还有其他方法可以删除这部分内容吗?
谢谢。
1个回答

3

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接