“如果存在Z:\ xfile \ NUL”,如果Z:映射到网络驱动器

时间:2017-05-18 23:43:08

标签: batch-file file-exists subst

我有Z:替换为网络驱动器,例如:

subst Z: \\fc\c

xfile是替换驱动器根目录中的文件(不是目录!)。以下陈述错误地回应了--exists -

if exist z:\xfile\nul echo -exists-

这使得xfile看起来像一个目录,当它真的是一个文件时。

未替换的驱动器号不会导致问题。非网络驱动器的子设备也不会导致问题。

是否有解决方法来处理看起来像是存在或存在的错误?

2 个答案:

答案 0 :(得分:0)

这是一个通用构造,它应该起作用于.BAT文件参数(这个假设它是第一个参数%1

@Echo Off
For /F "Tokens=1-2 Delims=d" %%A In ("-%~a1") Do (
    If "%%B" NEq "" (
        Echo %1 is a directory
    ) Else If "%%A" NEq "-" (
        Echo %1 is a file
    ) Else (
        Echo %1 does not exist
    )
)
Pause

答案 1 :(得分:0)

不要使用\ Nul机制。

更好地使用它:(只需添加反斜杠)

@NotNull(message = "price is required")
private Double price;