有人能告诉我如何在Windows批处理脚本中执行以下操作吗?(*。bat):

仅在文件夹不存在时才创建该文件夹

更详细地说,我想在C:\驱动器上创建一个名为VTS的文件夹,但前提是该文件夹还不存在。如果该文件夹已经存在并且批处理已经执行,我不想覆盖该文件夹的内容。


当前回答

你可以使用:

if not exist "C:\VTS\" mkdir "C:\VTS"

您还可以展开代码以替换任何丢失的预期文件。

if not exist "C:\VTS\important.file" echo. > "C:\VTS\important.file"

其他回答

你只需使用这个:如果不存在"C:\VTS\" mkdir C:\VTS,它将创建一个目录,只有当文件夹不存在。

注意,只有当VTS存在并且是一个目录时,这个存在性测试才会返回true。如果它不存在,或者以文件的形式存在,则将运行mkdir命令,并将导致错误。您可能还想检查VTS是否作为文件存在。

set myDIR=LOG
IF not exist %myDIR% (mkdir %myDIR%)
mkdir C:\VTS 2> NUL

创建一个名为VTS的文件夹,并输出一个子目录或文件TEST已经存在到NUL。

or

(C:&(mkdir "C:\VTS" 2> NUL))&

修改盘符为C:, mkdir, output error为NUL,执行下一个命令。

if exist C:\VTS\NUL echo "Folder already exists"

if not exist C:\VTS\NUL echo "Folder does not exist"

参见https://support.microsoft.com/en-us/kb/65994

(2018年3月7日更新;微软文章已删除,存档在https://web.archive.org/web/20150609092521/https://support.microsoft.com/en-us/kb/65994)

你可以使用:

if not exist "C:\VTS\" mkdir "C:\VTS"

您还可以展开代码以替换任何丢失的预期文件。

if not exist "C:\VTS\important.file" echo. > "C:\VTS\important.file"