1

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

subst Z: \\fc\c

xfile 是存在于替换驱动器根目录中的文件(不是目录!)。以下语句错误地呼应 -exists-

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

这使得 xfile 看起来是一个目录,而实际上它是一个文件。

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

是否有解决方法来处理看起来像 subst 或 if-exist 错误?

4

2 回答 2

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
于 2017-05-19T09:05:34.157 回答
0

不要使用 \Nul 机制。

更好地使用这个:(只需添加一个反斜杠)

if exist "%ALLUSERSPROFILE%\" (
    echo Folder exist
) else (
    echo Folder does not exist
)
于 2017-05-19T14:27:10.287 回答