Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Сохранить в переменную значение заключенное в кавычки, в строке (http://forum.oszone.net/showthread.php?t=349196)

epoddubniy 13-07-2021 14:22 2962059

Сохранить в переменную значение заключенное в кавычки, в строке
 
Здраствуйте.

при выполнении команды
Код:

netsh interface ipv4 dump
получаю вывод
Код:

reset
set global
add route prefix=0.0.0.0/0 interface="Ethernet0" nexthop=192.168.0.10 metric=1 publish=Да
set interface interface="Ethernet (отладчик ядра)" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
set interface interface="Ethernet0" forwarding=enabled advertise=enabled nud=enabled ignoredefaultroutes=disabled
add address name="Ethernet0" address=192.168.1.75 mask=255.255.248.0

в этом выводе есть строка
Код:

add route prefix=0.0.0.0/0 interface="Ethernet0" nexthop=192.168.0.10 metric=1 publish=Да
Помогите пожалуйста сохранить значение заключенное в кавычки
Код:

"Ethernet0"
в переменную, чтобы ее можно было далее в скрипте использовать, как параметр при вызове другого командного файла через "call"

Спасибо!

alpap 13-07-2021 14:53 2962061

для начала, вот это в PowerShell выводит нужную информацию?
Код:

Get-NetRoute -AddressFamily IPv4 -RouteMetric 1

alpap 13-07-2021 15:16 2962064

в bat найти из строки не проблема:
Код:

@echo off
set "line= add route prefix=0.0.0.0/0 interface="Ethernet0" nexthop=192.168.0.10 metric=1 publish=Да"

for /f tokens^=2^ delims^=^" %%a in ("%line%") do echo %%a
pause

проблема найти саму строку, попробуйте так:
Код:

@echo off
set "comm=netsh interface ipv4 dump"

for /f tokens^=2^ delims^=^" %%a in ('"%comm%|find /i "publish""') do echo %%a
pause

просто у меня нет постоянных(Publish) адресов чтобы проверить, только активные(Active)

epoddubniy 13-07-2021 15:22 2962066

Цитата:

Цитата alpap
для начала, вот это в PowerShell выводит нужную информацию?
Код:
Get-NetRoute -AddressFamily IPv4 -RouteMetric 1 »

Код:

PS C:\Windows\system32> Get-NetRoute -AddressFamily IPv4 -RouteMetric 1

Get-NetRoute : Запрос CIM экземпляров класса ROOT/StandardCimv2/MSFT_NetRoute на CIM-сервере : SELECT * FROM MSFT_NetRoute 
WHERE ((AddressFamily = 2)) AND ((RouteMetric = 1)) не удалось обнаружить соответствующие объекты (MSFT_NetRoute). Проверьте
 параметры запроса и попробуйте еще раз.
строка:1 знак:1
+ Get-NetRoute -AddressFamily IPv4 -RouteMetric 1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (MSFT_NetRoute:String) [Get-NetRoute], CimJobException
    + FullyQualifiedErrorId : CmdletizationQuery_NotFound,Get-NetRoute

ошибку выдает

Цитата:

Цитата alpap
Код:
@echo off
set "comm=netsh interface ipv4 dump"
for /f tokens^=2^ delims^=^" %%a in ('"%comm%|find /i "publish""') do echo %%a
pause »

вот это сработало. Спасибо большое alpap,


Время: 02:05.

Время: 02:05.
© OSzone.net 2001-