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

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

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


当前回答

你可以使用:

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

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

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

其他回答

set myDIR=LOG
IF not exist %myDIR% (mkdir %myDIR%)

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

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

mkdir C:\VTS 2> NUL

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

or

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

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

就我个人而言,我会这样做:

if not exist "C:\YourFolderPathHere\" (
mkdir C:\YourFolderPathHere\
) else (
echo Folder already exists!
)

让我们来分析一下:

如果不存在"C:\YourFolderPathHere\":这将检查文件夹。路径后面的反斜杠(\)非常重要,否则它将查找文件而不是文件夹。 mkdir C:\YourFolderPathHere\:如果上述语句为真,则创建目录。 echo文件夹已经存在!:打印到控制台,表明它已经存在。

下面是相同的代码,但是带有注释:

::Does the folder exist?
if not exist "C:\YourFolderPathHere\" (
::No, make it.
mkdir C:\YourFolderPathHere\
) else (
::Yes, don't make it, and print text.
echo Folder already exists!
)

单行版: 如果不存在“C:\YourFolderPathHere\”mkdir C:\YourFolderPathHere\

不过还没有测试过,所以不要引用我的话。

你可以使用:

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

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

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