1

我正在使用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"

我面临的问题是文件过滤器是什么时候,.或者*.* 如果文件夹中没有文件,那么命令会抛出响应“找不到文件”。Connect:Direct 进程在从命令获得任何响应时失败。有趣的是我只面临这个问题是文件过滤器是. 或 * 对于任何其他文件过滤器,即使文件夹中没有文件,我也没有收到此“找不到文件”响应。

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

有没有办法可以摆脱使用 * 和. 文件过滤器?

任何帮助或建议将不胜感激。

4

1 回答 1

3

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

>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,但这是我能得到的最好的。希望有人会提供更好的答案。

于 2015-08-18T13:58:41.310 回答