Пакет Findstr не открывается во время

Играл с findstr в пакете, чтобы получить запись о событии в Windows, поскольку это старое программное обеспечение, которое не делает этого по собственной инициативе.

Пакет открывает самый последний файл журнала и проверяет наличие слова не удалось записать в журнал событий, если он его находит, это работает, если файл журнала находится на моем рабочем столе, но не если это собственный каталог в данных программы:

FOR /F "delims=|" %%I IN ('DIR "C:\ProgramData\**supplier**\**application**\Backup\Logs\*.txt" /B /O:D') DO SET NewestFile=%%I

FINDSTR "failed" "%NewestFile%" 
IF NOT ERRORLEVEL 1 EVENTCREATE /T WARNING /ID 963 /L APPLICATION /SO **application Backup** /D "**application** Backup failed"

pause

Заранее спасибо.

Обновление: извините, я должен был упомянуть, что я работал от имени администратора, а также убедился, что файл в каталоге PD не используется. Ошибка, которую я возвращаю:

FINDSTR: Cannot open *.txt

person Louie Boyd    schedule 14.06.2020    source источник
comment
Попробуйте запустить от имени администратора... Могут потребоваться некоторые административные разрешения для чтения или записи данных программы.   -  person Nico Nekoru    schedule 15.06.2020
comment
Обновлен исходный пост, но это была попытка, мои извинения.   -  person Louie Boyd    schedule 15.06.2020
comment
Пожалуйста, запустите эту команду и посмотрите на последнюю строку вывода, DIR "C:\ProgramData\**supplier**\**application**\Backup\Logs\*.txt" /B /O:D. Вывод этой последней строки будет содержимым %%I, а затем содержимым %NewestFile%. Хорошо, теперь, как вы ясно заметили, результатом является просто имя каталога или файла без его диска или пути. Как вы ожидаете, что FINDSTR найдет его, не сообщая ему местонахождение? Теперь попробуйте с FINDSTR "C:\ProgramData\**supplier**\**application**\Backup\Logs\%NewestFile%".   -  person Compo    schedule 15.06.2020
comment
Спасибо, Compo, я вижу свою ошибку. Я добавил /S в свою команду Dir, которая выводит полный путь к файлу.   -  person Louie Boyd    schedule 15.06.2020


Ответы (1)


В итоге с моим запросом DIR произошел сбой, потребовался полный путь к файлу с аргументом /S:

FOR /F "delims=|" %%I IN ('DIR "C:\ProgramData\**supplier**\**application**\Backup\Logs\*.txt" /B /S /O:D') DO SET NewestFile=%%I

FINDSTR "failed" "%NewestFile%" 
IF NOT ERRORLEVEL 1 EVENTCREATE /T WARNING /ID 963 /L APPLICATION /SO **application Backup** /D "**application** Backup failed"
person Louie Boyd    schedule 15.06.2020