Файл команд 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
но это лучшее, что я мог получить. Надеюсь, кто-нибудь даст лучший ответ.