有人能告诉我如何在Windows批处理脚本中执行以下操作吗?(*。bat):
仅在文件夹不存在时才创建该文件夹
更详细地说,我想在C:\驱动器上创建一个名为VTS的文件夹,但前提是该文件夹还不存在。如果该文件夹已经存在并且批处理已经执行,我不想覆盖该文件夹的内容。
有人能告诉我如何在Windows批处理脚本中执行以下操作吗?(*。bat):
仅在文件夹不存在时才创建该文件夹
更详细地说,我想在C:\驱动器上创建一个名为VTS的文件夹,但前提是该文件夹还不存在。如果该文件夹已经存在并且批处理已经执行,我不想覆盖该文件夹的内容。
当前回答
就我个人而言,我会这样做:
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:\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\
不过还没有测试过,所以不要引用我的话。
set myDIR=LOG
IF not exist %myDIR% (mkdir %myDIR%)
我使用这种方式,你应该在目录名称的末尾放一个反斜杠,以避免该位置存在一个与你指定的目录同名的没有扩展名的文件,永远不要使用“C:\VTS”,因为它可以将一个文件存在名为“VTS”保存在“C:”分区,正确的方法是使用“C:\VTS\”,检查VTS后面的反斜杠,这样是正确的方法。
@echo off
@break off
@title Create folder with batch but only if it doesn't already exist - D3F4ULT
@color 0a
@cls
setlocal EnableDelayedExpansion
if not exist "C:\VTS\" (
mkdir "C:\VTS\"
if "!errorlevel!" EQU "0" (
echo Folder created successfully
) else (
echo Error while creating folder
)
) else (
echo Folder already exists
)
pause
exit
不管怎样,只要调用mkdir C:\VTS即可。它只会报告子目录已经存在。
编辑:正如其他人所注意到的,如果文件夹已经存在,这将设置%ERRORLEVEL%。如果批处理(或调用它的任何进程)不关心错误级别,则此方法工作得很好。由于问题没有提到避免错误级别,这个答案是完全有效的。如果文件夹不存在,它可以满足创建该文件夹的需要,并且它不会覆盖现有文件夹的内容。否则,请听马丁·沙潘顿克的回答。
这应该对你有用:
IF NOT EXIST "\path\to\your\folder" md \path\to\your\folder
然而,还有另一种方法,但它可能不是100%有用:
md \path\to\your\folder >NUL 2>NUL
该命令创建文件夹,但如果文件夹存在,则不显示错误输出。我强烈建议您使用第一个。第二个是如果你和另一个有问题。