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

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

Ответить
Настройки темы
CMD/BAT - [решено] Проверить запись в BAT файле

Аватара для RS_WOOLF

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


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

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


Всем привет.

Новичок в Батниках, поэтому такой вопрос.

Есть файл selhdw.dll
В нем есть строка
SET SST_....

Необходимо с помощью батника проверить наличие записи которое идет после SET SST...

Если например
SET SST_BRM то запускать файл 1
если
SET SST_CDM то запускать файл 2

Подскажите пожалуйста как это записать?
Спасибо большое.

Отправлено: 09:43, 05-03-2021

 

Аватара для Elven

Ветеран


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

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


Очень приблизительный и кривой вариант (на коленке писал, опять винды нет под рукой):
Код: Выделить весь код
findstr -C:"SET SST_BRM" selhdw.dll
if ERRORLEVEL 0 (
  findstr -C:"SET SST_CDM" 
  if ERRORLEVEL 0 (
    echo not found
  ) else (
    echo start file2.exe
  )
) else (
  echo start file1.exe
)
Ну и да, сейчас не я так кто-нибудь другой (скорей всего Iska) задаст справедливые вопросы о структуре файла, кодировке, концах строк, сколько раз может значение повторяться в файле, почему не posh, ну и наконец затребуют либо сам файл либо как минимум фрагмент с искомой строчкой (но лучше файл, мне вот очень интересно посмотреть на dll которая просто так берет и читается).
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:11, 05-03-2021 | #2



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

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


Аватара для RS_WOOLF

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


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

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


Вложения
Тип файла: txt selhdw.txt
(246 байт, 9 просмотров)

Файл, очень простой прилагаю,переименовал в txt

Отправлено: 10:19, 05-03-2021 | #3


Аватара для Elven

Ветеран


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

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


Ну тогда если этот параметр гарантированно не повторяется (т.е. в одном файле не будет и SET SST_BRM, и SET SST_CDM, то вариант во втором посте должнон худо-бедно сработать.

Отправлено: 11:41, 05-03-2021 | #4


Аватара для RS_WOOLF

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


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

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


Изображения
Тип файла: png 2021-03-05 12_00_45-C__WINDOWS_System32_cmd.exe.png
(24.9 Kb, 7 просмотров)

Цитата Elven:
Ну тогда если этот параметр гарантированно не повторяется (т.е. в одном файле не будет и SET SST_BRM, и SET SST_CDM, то вариант во втором посте должнон худо-бедно сработать. »
Попробовал, вот что вышло. прилагаю скрин Файл 163924

Последний раз редактировалось RS_WOOLF, 05-03-2021 в 12:15. Причина: исправление


Отправлено: 12:02, 05-03-2021 | #5


Аватара для RS_WOOLF

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


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

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


Вроде, разобрался.
Сделал вот так

findstr -C:"SET SST_CDMTYPE=BRM_SWAPPED" C:\selhdw.dll
echo %ERRORLEVEl%
if "%ERRORLEVEL%"=="0" start D:\file1.txt

findstr -C:"SET SST_CDMTYPE=MDM" C:\selhdw.dll
echo %ERRORLEVEl%
if "%ERRORLEVEL%"=="0" start D:\file2.txt

Отправлено: 12:44, 05-03-2021 | #6


Ветеран


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

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


Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

type "C:\selhdw.dll" | findstr.exe /l /c:"SET SST_CDMTYPE=BRM_SWAPPED" && start "" "D:\file1.txt"
type "C:\selhdw.dll" | findstr.exe /l /c:"SET SST_CDMTYPE=MDM"         && start "" "D:\file2.txt"

endlocal
exit /b 0
Хотя выше Вы писали про другое условие:
Цитата RS_WOOLF:
Если например
SET SST_BRM то запускать файл 1
если
SET SST_CDM то запускать файл 2 »
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:47, 05-03-2021 | #7


Аватара для RS_WOOLF

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


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

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


Цитата Iska:
@echo off
setlocal enableextensions enabledelayedexpansion
type "C:\selhdw.dll" | findstr.exe /l /c:"SET SST_CDMTYPE=BRM_SWAPPED" && start "" "D:\file1.txt"
type "C:\selhdw.dll" | findstr.exe /l /c:"SET SST_CDMTYPE=MDM" && start "" "D:\file2.txt"
endlocal
exit /b 0 »
Iska, отлично, так лучше.
Все работает.

Спасибо огромное Iska и Elven

Последний раз редактировалось RS_WOOLF, 05-03-2021 в 14:19. Причина: исправление


Отправлено: 14:17, 05-03-2021 | #8


Аватара для Elven

Ветеран


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

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


Iska, не поверишь, опять забыл про && и || , хотя КАЖДЫЙ ДЕНЬ ими пользуюсь (если и не обоими, то по крайней мере && так точно)

Отправлено: 21:51, 05-03-2021 | #9


Ветеран


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

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


Elven, верю. Сам такой .

Отправлено: 23:36, 05-03-2021 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Поиск в файле и запись в переменную ownsmir Скриптовые языки администрирования Windows 13 10-01-2023 14:41
CMD/BAT - Команда проверки в bat файле children_of_bodom Скриптовые языки администрирования Windows 2 29-06-2019 09:45
[решено] проверить вхождение подстроки в файле vngreez@vk AutoIt 8 29-09-2017 22:31
CMD/BAT - [решено] CMD/BAT - С помощью bat-ника найти и удалить текст в файле InVariable Скриптовые языки администрирования Windows 4 22-05-2015 20:06
CMD/BAT - Как проверить наличие текста в файле mamont1 Скриптовые языки администрирования Windows 6 16-09-2010 16:32




 
Переход