Компьютерный форум 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=351608)

Nilf 25-07-2022 12:54 2989174

Вывести информацию в файл, если в файле есть слово -> обновить информацию
 
Здравствуйте, уважаемые старожилы!

Есть необходимость в создании 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" не будет вовсе »

Есть риск того, что скрипт будет выполняться вечно.

Nilf 26-07-2022 09:01 2989222

Цитата:

Цитата DJ Mogarych
Что ж там за комп-то, Windows 98? »

Есть пару штук, но не много ). 2000 и XP в основе своя. Компы просто промышленные.

DJ Mogarych 26-07-2022 09:24 2989223

На XP можно поставить Powershell v2. А так - подберите какое-нибудь стороннее ПО типа WinAudit, которое умеет делать отчёты по вызову из командной строки.

Nilf 26-07-2022 11:00 2989230

Цитата:

Цитата DJ Mogarych
Есть риск того, что скрипт будет выполняться вечно. »

Ну тут как повезет, хотя в теории не должно, не думаю что все-же будет неопределенное состояние вечно висеть. Надеюсь итераций до 10 даже не дойдет.

Цитата:

Цитата DJ Mogarych
На XP можно поставить Powershell v2. А так - подберите какое-нибудь стороннее ПО типа WinAudit, которое умеет делать отчёты по вызову из командной строки. »

Стороннего ПО, к сожалению, тоже нужно избегать =(.

megaloman 26-07-2022 12:16 2989235

Есть риск, что предложенный батник не будет корректно работать в 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


Nilf 26-07-2022 12:21 2989237

Цитата:

Цитата 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.

Время: 14:40.
© OSzone.net 2001-