 |
|
Вывести информацию в файл, если в файле есть слово -> обновить информацию
Здравствуйте, уважаемые старожилы!
Есть необходимость в создании bat файла следующей функции:
Изначально выводиться информация из CMD в txt файл. Информация о состоянии запуска служб. ( wmic service get name,startmode > C:\Temp\Services\file11.txt )
В дальнейшем этот файл подвергается различным манипуляциям, но проблема в том, что при исполнении команды (wmic service get name,startmode > C:\Temp\Services\file11.txt) состояние запуска службы зачастую показывает разные результаты. И в некотором случае может показать состояние запуска службы как например "Auto" так и попросту не определить его "Unknown". Вот собственно мне это состояние "Unknown" совершенно нежелательно, поэтому хочу сделать так, чтобы после выполнения команды (wmic service get name,startmode > C:\Temp\Services\file11.txt) если в файле было хоть одно слово "Unknown", файл перезаписывался до момента пока слова "Unknown" не будет вовсе. Также проблема еще заключается в том что Powershell пользоваться нельзя ввиду его отсутствия на компе где исполняется скрипт.
Заранее спасибо за потраченное время!
|
DJ Mogarych |
26-07-2022 08:58 2989221 |
Цитата:
Цитата Nilf
Powershell пользоваться нельзя ввиду его отсутствия на компе »
|
Что ж там за комп-то, Windows 98?
Цитата:
Цитата Nilf
если в файле было хоть одно слово "Unknown", файл перезаписывался до момента пока слова "Unknown" не будет вовсе »
|
Есть риск того, что скрипт будет выполняться вечно.
|
Цитата:
Цитата DJ Mogarych
Что ж там за комп-то, Windows 98? »
|
Есть пару штук, но не много ). 2000 и XP в основе своя. Компы просто промышленные.
|
DJ Mogarych |
26-07-2022 09:24 2989223 |
На XP можно поставить Powershell v2. А так - подберите какое-нибудь стороннее ПО типа WinAudit, которое умеет делать отчёты по вызову из командной строки.
|
Цитата:
Цитата DJ Mogarych
Есть риск того, что скрипт будет выполняться вечно. »
|
Ну тут как повезет, хотя в теории не должно, не думаю что все-же будет неопределенное состояние вечно висеть. Надеюсь итераций до 10 даже не дойдет.
Цитата:
Цитата DJ Mogarych
На XP можно поставить Powershell v2. А так - подберите какое-нибудь стороннее ПО типа WinAudit, которое умеет делать отчёты по вызову из командной строки. »
|
Стороннего ПО, к сожалению, тоже нужно избегать =(.
|
Есть риск, что предложенный батник не будет корректно работать в CMD Ваших старых систем
Код:
@Echo Off
cls
Set "Out=Z:\____________file11.txt"
Set "KeyWord=Unknown"
Set /A MaxIter=20
Set /A i=0
:Begin
Wmic service get name,startmode > "%Out%"
>nul Find /I "%KeyWord%" "%Out%" ||Exit /B
Set /A i+=1
If %i% LEQ %MaxIter% GoTo :Begin
Echo !!! The file "%Out%"contains the word "%KeyWord%"
Pause
Exit /B
|
Цитата:
Цитата megaloman
Есть риск, что предложенный батник не будет корректно работать в CMD Ваших старых систем
Код:
@Echo Off
cls
Set "Out=Z:\____________file11.txt"
Set "KeyWord=Unknown"
Set /A MaxIter=20
Set /A i=0
:Begin
Wmic service get name,startmode > "%Out%"
>nul Find /I "%KeyWord%" "%Out%" ||Exit /B
Set /A i+=1
If %i% LEQ %MaxIter% GoTo :Begin
Echo !!! The file "%Out%"contains the word "%KeyWord%"
Pause
Exit /B »
|
Спасибо! Буду пробовать завтра состряпать на основе этого что-то.
|
Время: 14:40.
© OSzone.net 2001-