PDA

Показать полную графическую версию : [решено] Сохранить в переменную значение заключенное в кавычки, в строке


epoddubniy
13-07-2021, 14:22
Здраствуйте.

при выполнении команды
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
для начала, вот это в PowerShell выводит нужную информацию?

Get-NetRoute -AddressFamily IPv4 -RouteMetric 1

alpap
13-07-2021, 15:16
в 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
для начала, вот это в 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

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

Код:
@echo off
set "comm=netsh interface ipv4 dump"
for /f tokens^=2^ delims^=^" %%a in ('"%comm%|find /i "publish""') do echo %%a
pause »
вот это сработало. Спасибо большое alpap,




© OSzone.net 2001-2012