我需要检查我的第一个.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 "测试目录的技巧。我认为必须使用" 名称\。"去做这个。这里的新信息的闪烁可能是,如果存在" 名称\。"当" 名称"时出乎意料地为真。作为文件存在。这对我来说是违反直觉的。
答案 0 :(得分:1)
if exist "%~1\." echo file or dir&if exist "%~1\.\*" (echo dir) else (echo file)
为我工作。