![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Поиск по тексту в txt с "если" |
|
CMD/BAT - [решено] Поиск по тексту в txt с "если"
|
Пользователь Сообщения: 77 |
Добрый день!
Есть текстовый файл со следующим содержанием, в котором состояние логического диска рейда. Скрытый текст
CLI Version: 4.1.10.16 RaidAPI Version: 5.0.0.1061 Welcome to RAID Command Line Interface. > Virtual Disk Information ------------------------- id: 0 name: MicroBox status: degraded Stripe size: 64 RAID mode: RAID1 Cache mode: Off size: 953789 M BGA status: running Block ids: 0 4 # of PDs: 2 PD RAID setup: 0 1 Running OS: yes BGA progress: rebuilding is 23% done Total # of VD: 1 > Type 'exit' to exit CLI. > Выделенная строчка "BGA progress: rebuilding is 23% done" появляется только тогда, когда рейд восстанавливается. Помогите пожалуйста составить батник со следующей логикой: 1. Если в тексте есть слово degraded, но нет rebuilding, выводить "0" (во всех вариантах вывод без кавычек) 2. Если есть rebuilding, выводить цифры без % из этой строки, в данном тексте вывод должен быть "23" 3. Если нет ни degraded, ни rebuilding, выводить "1" |
|
Отправлено: 11:24, 05-04-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:00, 05-04-2018 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Цитата Iska:
теперь говорит CLI Version: 4.1.10.16 RaidAPI Version: 5.0.0.1061 Welcome to RAID Command Line Interface. > -o : invalid object '-vd' > info: option -o is required > Ambiguous command 'in'! > Ambiguous command 'i'! > Type 'exit' to exit CLI. |
|
Отправлено: 17:16, 05-04-2018 | #12 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать zegordo, а если так, напрямую:
@echo off setlocal enableextensions enabledelayedexpansion c:\mvsetup.exe info -0 -vd | find.exe /i "degraded" && ( c:\mvsetup.exe info -0 -vd | find.exe /i "rebuilding" && ( echo Status: Degraded and rebuilding exit /b 1 ) || ( echo Status: Degraded exit /b 2 ) ) || ( echo Status: Successfull exit /b 0 ) endlocal exit /b 0 Цитата zegordo:
Цитата zegordo:
|
||
Отправлено: 17:48, 05-04-2018 | #13 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать то выглядит так
Скрытый текст
![]() и в конце ещё status: successful если не зажимать мышкой |
Отправлено: 17:53, 05-04-2018 | #14 |
Ветеран Сообщения: 5380
|
Профиль | Отправить PM | Цитировать Цитата zegordo:
|
|
------- Отправлено: 17:58, 05-04-2018 | #15 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата zegordo:
2. А какой на самом деле сейчас статус? |
|
Отправлено: 18:06, 05-04-2018 | #16 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Цитата Казбек:
Цитата Iska:
Цитата Iska:
Вообще CLI этот схож с телнетом, если запускать его из командной строки - т.е. после команды telnet в батнике, команды что были после не сработают. Но думаю, вы это и так поняли уже |
|||
Последний раз редактировалось zegordo, 06-04-2018 в 10:25. Отправлено: 09:27, 06-04-2018 | #17 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата zegordo:
Цитата zegordo:
Цитата zegordo:
Тогда пробуем вернуться именно к варианту с echo, только добавив в него ещё и exit, наподобие: @echo off setlocal enableextensions enabledelayedexpansion ( echo info -o -vd echo exit ) | c:\mvsetup.exe | find.exe /i "degraded" && ( ( echo info -o -vd echo exit ) | c:\mvsetup.exe | find.exe /i "rebuilding" && ( echo Status: Degraded and rebuilding exit /b 1 ) || ( echo Status: Degraded exit /b 2 ) ) || ( echo Status: Successfull exit /b 0 ) endlocal exit /b 0 |
|||
Отправлено: 13:41, 06-04-2018 | #18 |
Пользователь Сообщения: 77
|
Профиль | Отправить PM | Цитировать Iska, выглядит так, что ничего не изменилось
https://drive.google.com/open?id=1HF...Jevi7OcUWQWY-d - инсталлятор, при установке надо галкой отметить CLI чтобы поставил, https://support.hpe.com/hpsc/doc/pub...a00022850en_us - гайдик не знаю, поставится ли если контроллера нет. апдейт https://drive.google.com/open?id=1ZS...Brf4E_EZne0A1L вот сама утилита с библиотеками на другом компе выдаёт по команде info -o -vd "Unable to get info of vd (error 13: Invalid adapter id)" что, в принципе, тот же текст. |
Отправлено: 15:00, 06-04-2018 | #19 |
Ветеран Сообщения: 2735
|
Профиль | Отправить PM | Цитировать Цитата zegordo:
1. Если нет ни rebuilding ни degraded, выводить 0 (это нормальное рабочее состояние системы, не нуль = уровень ошибки) 2. Если в тексте есть слово degraded и нет rebuilding, выводить "-1" (именно с минусом) 3. Если есть rebuilding и нет degraded выводить "-10" 4. Если есть rebuilding и degraded выводить "-11" 5. Если есть degraded с процентами, выводить проценты (в данном тексте 23 - тут бы я, вообще-то выводил бы 123, так как есть вероятность индикации 0% -легко подкорректировать) Наверное, пункт 4 не реализуется никогда, так как его "перебьет" пункт 5. Вот решение для текстового файла - проверял на Ваших текстах
@Echo Off cls Set "FileIn=Z:\Soft_In\text1.txt" Set "Word1=degraded" Set "Word2=rebuilding" Set /A LWord1=0 find /i "%Word1%" "%FileIn%" >nul &&Set /A LWord1=-1 Set /A LWord2=0 Set "Proc=" FOR /F "usebackq tokens=1,5 delims= " %%r IN (`"find /i "%Word2%" "%FileIn%""`) DO (Set /A LWord2=-10 &Set "Proc=%%s") If Not "%Proc%"=="" ( Set /A OutErr=%Proc:~0,-1% ) Else ( Set /A OutErr=%LWord1%+%LWord2% ) Echo %OutErr% pause Exit /B %OutErr% Вот попытка решения без текстового файла. Проверялось частично: c:\mvsetup.exe моделировал More.com c файлом, так как иначе протестировать не на чем
@Echo Off cls Set "PRG=c:\mvsetup.exe" Set "Word1=degraded" Set "Word2=rebuilding" Set /A LWord1=0 "%PRG%" |find /i "%Word1%" >nul &&Set /A LWord1=-1 Set /A LWord2=0 Set "Proc=" FOR /F "usebackq tokens=1,5 delims= " %%r IN (`""%PRG%" |find /i "%Word2%" "%FileIn%""`) DO (Set /A LWord2=-10 &Set "Proc=%%s") If Not "%Proc%"=="" ( Set /A OutErr=%Proc:~0,-1% ) Else ( Set /A OutErr=%LWord1%+%LWord2% ) Echo %OutErr% pause Exit /B %OutErr% |
|
------- Последний раз редактировалось megaloman, 06-04-2018 в 18:08. Причина: Оптимизация кодов Отправлено: 15:56, 06-04-2018 | #20 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] Как правильно устанавливать программы если есть "Администратор" и "обычный пользоват" | alex2887 | Хочу все знать | 6 | 24-02-2017 13:02 | |
CMD/BAT - Как из строки в .txt вывести символы "которые там обновляются"в другой .txt | Bombastig | Скриптовые языки администрирования Windows | 6 | 08-02-2014 04:54 | |
CMD/BAT - [решено] Нужно создать "батник" - вырезать из "2.txt" первых n строк и вставить их в "1.txt" | temphard | Скриптовые языки администрирования Windows | 12 | 10-01-2014 18:36 | |
Разное - [решено] Возвращение в меню "Создать" пункта "Текстовый документ", ассоциирование с TXT | Pavla | Microsoft Windows 7 | 16 | 10-07-2012 07:47 | |
Поиск слова в txt затем поиск по маске "(383)" и вывод инфы | rustoss | AutoIt | 10 | 29-09-2011 15:27 |
|