使用批处理创建文件夹,但前提是它尚不存在

任何人都可以告诉我如何在Windows批处理脚本中执行以下操作? ( *.bat ):

  • 仅当文件夹尚不存在时才创建它

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


#1楼

试试这个

ROBOCOPY C:\\Users\\ADMIN\\Pictures c:%date:~4,2%%date:~7,2%%date:~10,4% /MOV

此批处理将生成一个新文件夹并将其名称设置为当前日期。 (03222013)然后它会将C:\\Users\\ADMIN\\Pictures文件夹中的任何文件移动到新创建的文件夹。

如果今天是2013年3月22日.... C:\\Users\\ADMIN\\Pictures所有文件将被移动到名为03222013的文件夹中。

仅移动C:\\Users\\ADMIN\\Pictures文件。 不会触及C:\\Users\\ADMIN\\Pictures任何文件夹。


#2楼

我为我的脚本创建了这个我用于眼睛的工作。

: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\"

#3楼

mkdir C:\VTS 2> NUL

创建一个名为VTS的文件夹并输出A subdirectory or file TEST already existsNUL

要么

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

将驱动器号更改为C:mkdir ,将输出错误更改为NUL并运行下一个命令。


#4楼

你只需使用它: if not exist "C:\\VTS\\" mkdir C:\\VTS它只有在文件夹不存在时才会创建一个目录。

请注意,只有VTS存在并且是目录时,此存在测试才会返回true。 如果它不存在,或者作为文件存在,则mkdir命令将运行,并且应该导致错误。 您可能想要检查VTS是否也作为文件存在。


#5楼

我使用这种方式,你应该在目录名的末尾添加一个反斜杠,以避免该文件存在于没有与你指定的目录同名的扩展名的文件中,从不使用“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

#6楼

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

#7楼

您可以使用:

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

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

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

#8楼

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日; Microsoft文章已关闭,存档于https://web.archive.org/web/20150609092521/https://support.microsoft.com/en-us/kb/65994


#9楼

只要调用mkdir C:\\VTS无论如何。 它只会报告该子目录已存在。

编辑:正如其他人所说,如果文件夹已存在,则会设置%ERRORLEVEL%。 如果您的批处理(或任何调用它的进程)不关心错误级别,则此方法可以很好地工作。 由于问题没有提到避免错误级别,这个答案是完全有效的。 它满足创建文件夹(如果它不存在)的需要,并且它不会覆盖现有文件夹的内容。 否则请按照Martin Schapendonk的回答

发布了0 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/asdfgh0077/article/details/104210627
今日推荐