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

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

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


当前回答

这应该对你有用:

IF NOT EXIST "\path\to\your\folder" md \path\to\your\folder

然而,还有另一种方法,但它可能不是100%有用:

md \path\to\your\folder >NUL 2>NUL

该命令创建文件夹,但如果文件夹存在,则不显示错误输出。我强烈建议您使用第一个。第二个是如果你和另一个有问题。

其他回答

我为我的脚本创建了这个,我在我的工作中使用的eyebeam。

:CREATES A CHECK VARIABLE

set lookup=0

:CHECKS IF THE FOLDER ALREADY EXIST"

IF EXIST "%UserProfile%\AppData\Local\CounterPath\RegNow Enhanced\default_user\" (set lookup=1)

:IF CHECK is still 0 which means does not exist. It creates the folder

IF %lookup%==0 START "" mkdir "%UserProfile%\AppData\Local\CounterPath\RegNow Enhanced\default_user\"
mkdir C:\VTS 2> NUL

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

or

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

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

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

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

你可以使用:

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

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

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

这应该对你有用:

IF NOT EXIST "\path\to\your\folder" md \path\to\your\folder

然而,还有另一种方法,但它可能不是100%有用:

md \path\to\your\folder >NUL 2>NUL

该命令创建文件夹,但如果文件夹存在,则不显示错误输出。我强烈建议您使用第一个。第二个是如果你和另一个有问题。