Windows 未找到 Dos 命令文件(连接:直接进程)

Windows Dos Command File Not Found (connect:direct Process)

我正在使用 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\program72047.dirfile.lst"

我面临的问题是当文件过滤器为 .*.* 时,如果文件夹中没有文件,则命令会抛出响应 "File Not Found"。 Connect:Direct 进程在收到命令的任何响应时失败。有趣的是,我只遇到这个问题是文件过滤器是 . 或 * 对于任何其他文件过滤器我没有得到这个 "File Not Found" 响应,即使文件夹中没有文件。

如果我使用 2> Null 解决问题,它不会显示任何其他异常,因此我不喜欢使用它?

有什么方法可以消除我在使用 * 和 . 文件过滤器时收到的“未找到文件”消息?

如有任何帮助或建议,我们将不胜感激。

这不是很漂亮,但应该可以解决问题:

>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\program72047.dirfile.lst") || ECHO. > "F:\Sterling\Connect Direct v4.6.00\Server\program72047.dirfile.lst"  

我知道你不想使用 2>Nul 但这是我能得到的最好的。希望有人能提供更好的答案。