Aditya_ETL Ответов: 0

Временная задержка между двумя командами dos


Привет,

Я пытаюсь включить задержку в 120 секунд между следующими двумя командами DOS в скрипте .bat:

COPY \\CDFS23001\\SOURCE\ORG\*ACCOUNTS*.xml \\CDFS23001\\SOURCE\TGT\

TIMEOUT /T 120 /NOBREAK

dir /b \\CDFS23001\\SOURCE\TGT\*ACCOUNTS*.xml > \\CDFS23001\\SOURCE\TGT\List_Accounts.txt

Вышеуказанный тайм - аут отлично работает при непосредственном выполнении скрипта .bat непосредственно или через командную строку, но не работает при выполнении задачи в другом инструменте (command task in ETL tool-Informatica Powercenter).

Команды COPY и DIR работают нормально, но только тайм-аут не работает, когда пакетный файл вызывается через внешнюю задачу.

Я также пробовал PING, CHOICE, PAUSE, SLEEP ни один из них не работает здесь, когда файл .bat вызывается через внешнюю задачу.

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

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

Что я уже пробовал:

Я также пробовал PING, CHOICE, PAUSE, SLEEP, но ни один из них здесь не работает.

Alan N

Прежде чем кто-либо сможет попытаться ответить, ему нужно будет знать, что вы подразумеваете под "При выполнении задачи в другом инструменте"

Aditya_ETL

Спасибо Алану, я обновил вопрос и включил детали инструмента

Richard MacCutchan

Вам нужно собрать больше информации, чтобы точно узнать, что происходит, когда вы запускаете его через инструмент. Добавьте несколько операторов echo и захватите все выходные данные.

Sajjid Atta

Я никогда не работал с вашим инструментом, но попробуйте эту команду. Это может сработать
инструкция waitfor SomethingThatIsNeverHappening /Т 100

Aditya_ETL

Замечательно..!!!! Это сработало, спасибо огромное

С уважением,
Адитья

Dave Kreskowiak

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

Использование тайм-аута является плохим решением и не устраняет основную причину проблемы.

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

0 Ответов