Выполнить командный файл, если файл .log содержит текст

Я много искал, методом проб и ошибок. Я думал, что это будет простая задача, но мне не везет …

У меня есть файл .log (назовите его output.log), который автоматически обновляется программой. Каждый раз, когда в этом файле появляется определенный текст (назовите его «тест»), я хочу, чтобы запускалась программа или командный файл. Я также хочу, чтобы он оставался открытым и запускал программу каждый раз, когда появляется текст.

Я использую Windows 10.

Я пробовал это:

powershell -command "select-string -path c:output.log -pattern "text" | "c:WindowsSystem32calc.exe"

Но он запускает вычисление независимо от того, есть ли совпадение для «текста» в файле или нет …

1 ответ
1

Почему нет:

@echo off

:loop_again
find/i "text" output.log >nul && ( %__AppDir__%calc.exe ) || (
    %__AppDir__%timeout.exe /t 3 /NoBreak & goto :loop_again )

:loop_wait
%__AppDir__%timeout.exe /t 3 /NoBreak | echo=Please, wait!.
%__AppDir__%tasklist.exe /nh | find /i "calc.exe” >nul && (
    goto :loop_wait ) || goto :loop_again

  • Вот мой результат: В строке: 1 символ: 36 + find / i «text» output.log> nul && «C: Windows System32 calc.exe» + ~~ Токен ‘&&’ не является допустимый разделитель операторов в этой версии. В строке: 1 символ: 39 + find / i «text» output.log> nul && «C: Windows System32 calc.exe» + ~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ Выражения разрешены только в качестве первого элемента конвейера. + CategoryInfo: ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId: InvalidEndOfLine

    — jeromes13
    13 часов назад

  • @ jeromes13 это cmd, а не «powershell -command« …. »

    — Это был не я
    13 часов назад

  • Оно работает. Но я хочу, чтобы он постоянно отслеживался и выполнял программу с каждым последующим добавлением «текста» в файл .log. Имеет ли это смысл?

    — jeromes13
    13 часов назад

  • @ jeromes13 Я добавлю некоторые объяснения, насколько это возможно, и протестирую тоже. Это пишет в моем чел, поэтому не проверено.

    — Это был не я
    12 часов назад

  • Взгляни на Следите за изменениями в файле и запустите команду с помощью powershell. Вы хотите реализовать FileSystemWatcher следить за вашим .log файл.

    — Кит Миллер
    8 часов назад

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *