2016-06-02 2 views
3

Я пытаюсь получить адрес ipV6 из интерфейса, используя командный файл в Windows 7 (через команду netsh), но я не знаю, как я могу поместить разделитель% в качестве разделителя: Вот почему у меня есть:Использование символа процента в пакетном файле разделителя токенов

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. 

Я пытаюсь использовать %% ^%, и других, но у меня нет никакого результата. Как использовать этот символ в качестве разделителя? Есть ли другой способ удалить эту часть?

Спасибо,

ответ

3

вам нужно double it и оставил пространство в качестве последнего разделителя:

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 
+0

Я пробовал %%, но не помещал пространство в качестве последнего разделителя, тогда это не сработало. Я не думал менять порядок, это трюк – togarha

Смежные вопросы