批处理存在测试返回true为文件\

时间:2017-05-15 04:53:50

标签: windows batch-file cmd

我需要检查我的第一个.bat参数是否是现有文件而不是目录,所以我尝试了简单的:

if not exist "%~1\." if exist "%~1" echo exists as file

"%~1 \。" 测试为"%~1" 是一个文件时存在(奇怪的) ),所以测试失败了。我没有看到解决问题的简单方法。

这确实重复:How to test if a file is a directory in a batch script?

没有知道" 名称\ NUL "测试目录的技巧。我认为必须使用" 名称\。"去做这个。这里的新信息的闪烁可能是,如果存在" 名称\。"当" 名称"时出乎意料地为真。作为文件存在。这对我来说是违反直觉的。

1 个答案:

答案 0 :(得分:1)

if exist "%~1\." echo file or dir&if exist "%~1\.\*" (echo dir) else (echo file)

为我工作。