我希望能够检查特定文件夹(FolderA)是否存在,如果存在,则显示一条消息,然后退出批处理文件。
如果FolderA不存在,则需要检查另一个文件夹(FolderB)是否存在。 如果FolderB不存在,则应显示一条消息并创建该文件夹,如果FolderB存在,则应显示一条消息说明其已存在。
有人知道在记事本中可以使用的代码来创建一个批处理文件以允许我执行此操作吗?
所有这些都需要在一个.bat
文件中完成。
我希望能够检查特定文件夹(FolderA)是否存在,如果存在,则显示一条消息,然后退出批处理文件。
如果FolderA不存在,则需要检查另一个文件夹(FolderB)是否存在。 如果FolderB不存在,则应显示一条消息并创建该文件夹,如果FolderB存在,则应显示一条消息说明其已存在。
有人知道在记事本中可以使用的代码来创建一个批处理文件以允许我执行此操作吗?
所有这些都需要在一个.bat
文件中完成。
if exist yourfilename (
echo Yes
) else (
echo No
)
用你的文件名替换 yourfilename。
if exist yourfoldername\ (
echo Yes
) else (
echo No
)
将yourfoldername替换为您的文件夹名称。
似乎在路径后添加一个反斜杠(\
)即可区分目录和普通文件。
if exist "c:\folder\nul" echo ok
并没有起作用。正确的写法是:if exist "c:\folder\" echo ok
。 - Alexander Gelbukhif exist "networkPath\nul"
可能会错误地将一个文件报告为 Windows 网络驱动器上的文件夹。不幸的是,if exist "networkPath\"
也有同样的问题。请参阅 https://dev59.com/tWoy5IYBdhLWcg3wQr5i#8669636 上的2015-12-08更新,了解在我所有的测试中一直可靠的技术。 - dbenhamif exist c:\Windows\nul echo ok
会输出 ok
,但是 if exist "c:\Windows\nul" echo ok
则什么都不会输出。正如我所说,虽然 if exist "c:\Program Files\nul" echo ok
什么都不会输出,但是 if exist "c:\Program Files\" echo ok
会输出 ok
,因此可以处理带有空格的路径。 - Alexander Gelbukh我认为答案可能在这里(可能是重复的内容):
IF EXIST %VAR%\NUL ECHO It's a directory
用你的目录替换 %VAR%。请阅读原始答案,因为其中包括有关处理文件夹名称中的空格的详细信息。
正如foxidrive所说,这在NT类Windows上可能不可靠。它对我来说有效,但我知道它有一些限制(可以在参考的问题中找到)。
if exist "c:\folder\" echo folder exists
这应该足够适用于现代Windows。
`if exist "c\:folder\" echo folder exists`
- foxidriveE:\NUL
。 - CAD blokeif exist "SomePath\*"
甚至可以用于网络路径... - aschipfl