1 / 1 / 0
Регистрация: 18.09.2018
Сообщений: 8
1

Считывание данных из ответа командной строки

20.09.2018, 11:07. Показов 910. Ответов 3

Добрый день.
Не тривиальная для меня задача.
Командой route print получаю список маршрутов:
Активные маршруты:
Сетевой адрес Маска сети Адрес шлюза* Интерфейс Метрика
0.0.0.0 0.0.0.0 192.168.42.129 192.168.42.105 266
127.0.0.0 255.0.0.0 On-link 127.0.0.1 306
127.0.0.1 255.255.255.255 On-link 127.0.0.1 306
127.255.255.255 255.255.255.255 On-link 127.0.0.1 306
169.254.0.0 255.255.0.0 On-link 169.254.12.237 266
169.254.12.237 255.255.255.255 On-link 169.254.12.237 266

из этого списка из первой строчки с дефолтными (нулевыми маршрутами) мне нужно вытащить в переменную адрес шлюза :192.168.42.129
Как в Linux grep а потом tail я считываю с нужного места символы, помещаю их в переменную, а потом как-нибудь задействую.
Bash
1
2
3
PSK="$(cat ip.txt | grep -A 1 'ip=' | tail -2 | cut -d '=' -f 2 | cut -d '}' -f 10)  #просто как пример"
IP=192.168.42.129
add route $IP dev ...........
Как сделать это в винде не представляю. Делаю bat-файл:
route print
route print | find "0.0.0.0" - но я не знаю как вытянуть конкретные значения и передать временной переменной. а так он выдает всю строчку
route add xx.xx.xx.xx (сюда переменную - 192.168.42.129 например)
pause

Подскажите кто знает, плз.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.09.2018, 11:07
Ответы с готовыми решениями:

Получение ответа из командной строки
Здравствуйте, объясните как можно взять текст из определенной строки полученного ответа, проще...

Получение ответа с командной строки и неправильное отображение в TextBox
Возникла проблема - при работе командной строки в консольном приложение символы отображаются каряво...

Получение ответа с командной строки и неправильное отображение в TextBox
Вопрос раскрыт в заголовке темы :) но все же: простенькая программа которая отправляет запрос в...

Считывание с командной строки
Добрый день, подскажите пожалуйста: у меня есть программа которая должна выполнять то же что и ...

3
Любознательный
2362 / 830 / 223
Регистрация: 10.03.2016
Сообщений: 1,917
20.09.2018, 14:04 2
Цитата Сообщение от Farank5555 Посмотреть сообщение
Подскажите кто знает, плз.
Если батник не сделают, ибо муторно с текстом в батниках возиться, вопрос лучше перенести в раздел powershell... на нем и инструментов поболее, и возможно, решение общей задачи будет совсем другим.
0
412 / 175 / 26
Регистрация: 11.03.2018
Сообщений: 746
20.09.2018, 15:20 3
Цитата Сообщение от Farank5555 Посмотреть сообщение
Как сделать это в винде не представляю
В последних сборках Windows 10 есть встроенный bash
0
1 / 1 / 0
Регистрация: 18.09.2018
Сообщений: 8
20.09.2018, 15:37  [ТС] 4
Сделал. вот код. Может кому поможет.
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
route print
::записываем в файл искомую строку
route print | find "0.0.0.0          0.0.0.0" > C:\Windows\System32\1.txt
::Выводим в консоль чтоб было понятно
route print | find "0.0.0.0          0.0.0.0"
:: Файл с текстом
Set file=C:\Windows\System32\1.txt
::вычитываем строку из файла в буффер
For /F "usebackq tokens=* delims=" %%i In ("%file%") Do Set var=%%i
::теперь в переменной у нас строка. мы знаем её длинну поэтому считываем просто по символьно
set a=%var%
set b=%a:~37,14%
::выводим считанную переменную
echo %b%
::вводим роуты
route add (произволный ваш айпи) mask 255.255.255.255 %b% metric 40
route change 0.0.0.0 mask 0.0.0.0 %b% metric 66
::по идее все
route print
pause
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.09.2018, 15:37

Считывание командной строки в одну строчку
Добрый день, подскажите пожалуйста есть есть файл emp.lst и мы его работали с ним так...

Ввод данных из командной строки
не могу понять как ввести данный из командной строки для вот этого кода нужно ввести в функцию 2...

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

Получение данных из командной строки
using System; using System.Collections.Generic; using System.Linq; using System.Text; using...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru