Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывести информацию в файл, если в файле есть слово -> обновить информацию

Ответить
Настройки темы
CMD/BAT - [решено] Вывести информацию в файл, если в файле есть слово -> обновить информацию

Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте, уважаемые старожилы!

Есть необходимость в создании 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 пользоваться нельзя ввиду его отсутствия на компе где исполняется скрипт.

Заранее спасибо за потраченное время!

Отправлено: 12:54, 25-07-2022

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6483
Благодарности: 1462

Профиль | Отправить PM | Цитировать


Цитата Nilf:
Powershell пользоваться нельзя ввиду его отсутствия на компе »
Что ж там за комп-то, Windows 98?
Цитата Nilf:
если в файле было хоть одно слово "Unknown", файл перезаписывался до момента пока слова "Unknown" не будет вовсе »
Есть риск того, что скрипт будет выполняться вечно.

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 08:58, 26-07-2022 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Что ж там за комп-то, Windows 98? »
Есть пару штук, но не много ). 2000 и XP в основе своя. Компы просто промышленные.

Отправлено: 09:01, 26-07-2022 | #3


Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6483
Благодарности: 1462

Профиль | Отправить PM | Цитировать


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

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)


Отправлено: 09:24, 26-07-2022 | #4


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата DJ Mogarych:
Есть риск того, что скрипт будет выполняться вечно. »
Ну тут как повезет, хотя в теории не должно, не думаю что все-же будет неопределенное состояние вечно висеть. Надеюсь итераций до 10 даже не дойдет.

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

Отправлено: 11:00, 26-07-2022 | #5


Ветеран


Contributor


Сообщения: 2703
Благодарности: 1683

Профиль | Отправить PM | Цитировать


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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:16, 26-07-2022 | #6


Новый участник


Сообщения: 19
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата 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 »
Спасибо! Буду пробовать завтра состряпать на основе этого что-то.

Отправлено: 12:21, 26-07-2022 | #7



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Вывести информацию в файл, если в файле есть слово -> обновить информацию

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Программно получить информацию о файле с вкладки Подробно test009 Microsoft Windows 10 2 17-01-2021 18:12
[решено] Как узнать полную информацию о видео файле? Bass666 Хочу все знать 9 13-10-2015 22:49
CMD/BAT - [решено] Открыть файл если есть строка в файле .txt denntl Скриптовые языки администрирования Windows 12 02-10-2013 12:29
[решено] Вывести информацию из файла через JS MultiMax Вебмастеру 1 31-05-2011 22:58
Разное - Как обновить информацию об оборудовании? Lite Microsoft Windows 2000/XP 6 08-12-2010 08:14




 
Переход