Блокируется один файл журнала для нескольких пакетных процессов

У меня есть базовые знания по пакетным файлам. Мой первый скрипт был тем, что я нашел для экспорта отчетов Oracle Discoverer через планировщик задач Windows. Это в основном все, что я знаю, у меня есть несколько из них (может быть 40 или около того), которые работают в разное время, некоторые каждые 30 минут. Они иногда пересекаются во времени.

Моя проблема не в конкретном экспорте обнаружителя, а в регистрации ошибок. Я хочу записать все в один файл журнала... с Excel и процессами доступа, я могу зацикливаться, пока не освободится, и все хорошо; с помощью пакетных файлов Discoverer файл журнала блокируется в начале и не позволяет другим входить в систему, пока не будет выполнено. Некоторые из этих отчетов об обнаружении могут занять 30 минут или больше, что испортит все мои пробежки.

Вот пример моего файла летучей мыши:

@echo off
echo my process %date% %time% >>c:\test.log
c:\orant\DISCVR4\DIS4USR.EXE /connect MyUserID/MyPassword@myserver /open "c:\DiscoReport.DIS" /export xls "c:\MyFile.xls" /batch 1>>c:\test.log 2>>&1

У меня есть файл bat с несколькими отдельными файлами процессов, так что они запускаются по одному. Это отлично работает. Но когда запуск занимает больше времени, чем предполагалось, то следующий запуск завершается неудачно... потому что все они запускаются с запуска дискотеки, и файл журнала блокируется на протяжении всего и до конца... Есть ли что-то, что я могу сделать, чтобы просто открыть и закрыть это прямо в момент добавления только результатов?

Я искал ответы, и я полагаю, что есть что-то, что можно сделать с TEE или перенаправить результаты, возможно, на ноль, а затем использовать это в качестве входного канала для записи в журнал? но я действительно не знаю, как это сделать... посмотрел, попробовал, недели и недели, ничего не получалось... Довольно пожалуйста, я уверен, что те, кто знает, могут сделать это с помощью одной строки. Пожалуйста помогите...

1 ответ

По сути, НЕТ - если вы хотите, чтобы файл журнала содержал все события в определенном порядке.

Вы можете сделать так, чтобы процессы Discoverer создавали свои отдельные файлы журналов, а затем

type discoverer.log.file >>logfile
del discoverer.log.file

который сгруппировал бы весь вывод процесса Discoverer вместе в лог-файл.

В противном случае вам придется мириться с несколькими журналами.

Я сильно сомневаюсь TEE мог сделать это как TEE Тогда сам должен был бы держать журнал открытым, так что вы вернулись к началу - Но я подчеркну, что я не пробовал.

Другие вопросы по тегам