Файл команд Windows Dos не найден (подключение: прямой процесс)

Я использую Connect:Direct для запуска команды DOS, чтобы получить список файлов, доступных для сбора.

Если файлы доступны в папке коллекции, то сведения о файле перенаправляются в выходной файл (dirfile.lst), Затем Connect:Direct создаст коллекцию для этих файлов и затем удалит dirfile.lst. Если в папке коллекции нет файлов, ожидается, что dirfile.lst будет пустым. И Connect:Direct не будет собирать файлы и удалять dirfile.lst.

Команда, которую я использую

(dir "G:\Outbound\EDI\USCOLL_FTP\*" /a-d/oN ) > "F:\Sterling\Connect Direct v4.6.00\Server\program\2172047.dirfile.lst"

Проблема, с которой я сталкиваюсь, это когда фильтр файлов . или же *.* и если в папке нет файлов, команда выдает ответ "Файл не найден". Соединение: прямой процесс завершается неудачно, когда он получает какой-либо ответ от команды. Интересно, я только сталкиваюсь с этой проблемой, это фильтр файлов . или * для любого другого фильтра файлов Я не получаю этот ответ "Файл не найден", хотя в папке нет файлов.

Если я использую 2> Null чтобы исправить проблему, не будет отображаться никаких других исключений, поэтому я не предпочитаю использовать это?

Есть ли способ, которым я могу избавиться от сообщения File Not Found, которое я получаю, когда использую * и . файловые фильтры?

Любая помощь или предложения будут высоко оценены.

1 ответ

Решение

Это не красиво, но это должно сработать:

>NUL 2>NUL DIR "G:\Outbound\EDI\USCOLL_FTP\*" /a-d/oN && (DIR "G:\Outbound\EDI\USCOLL_FTP\*" /a-d/oN > "F:\Sterling\Connect Direct v4.6.00\Server\program\2172047.dirfile.lst") || ECHO. > "F:\Sterling\Connect Direct v4.6.00\Server\program\2172047.dirfile.lst"  

Я знаю, что ты не хотел использовать 2>Nul но это лучшее, что я мог получить. Надеюсь, кто-нибудь даст лучший ответ.

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