如果“新文件夹”已经存在,我想在桌面和“新文件夹(2)”中创建“新文件夹”。但我每次都以两个文件夹结束。我想检查条件或while循环,无论你建议如何实现它。
mkdir C:\Users\kdk\Desktop\"New folder"
if exist C:\Users\kdk\Desktop\"New folder" mkdir C:\Users\kdk\Desktop\"New folder (2)"
答案 0 :(得分:1)
这会使用计数器并在每次运行时创建一个新文件夹(new folder
,new folder (1)
,new folder (2)
...)
@echo off
set counter=0
mkdir "new folder" 2>nul || goto :TryNext
:continue
REM rest of your code
goto :eof
:TryNext
set /a counter+=1
mkdir "new folder (%counter%)" 2>nul || goto :TryNext
goto :continue
||
充当"如果mkdir失败*)那么"
2>nul
禁止错误消息("子目录已存在")
*)因为该文件夹已存在
答案 1 :(得分:0)
每次最终都会有两个文件夹,因为您的第一个语句不是有条件的。这意味着无论在什么情况下都会创建一个“新文件夹”。您的第一个条件语句检查是否存在该文件夹,该文件夹将始终在第一行创建,因此条件将始终为true ...每次运行脚本时创建“New folder(2)”。
答案 2 :(得分:0)
使用
if exist "C:\Users\kdk\Desktop\New folder" (
mkdir "C:\Users\kdk\Desktop\New folder (2)"
) else (
mkdir "C:\Users\kdk\Desktop\New folder"
)
代替。
在您的代码中,您检查它是否存在于第二行,但它将始终存在,因为您的第一行将创建"新文件夹"它已经存在或不存在。所以两个目录总是被创建
答案 3 :(得分:0)
if exist C:\Users\kdk\Desktop\"New folder" mkdir C:\Users\kdk\Desktop\"New folder (2)"
mkdir C:\Users\kdk\Desktop\"New folder"
似乎是一个明显的解决方案 - 报价定位是另一个问题。
答案 4 :(得分:0)
你的逻辑错了。您正在创建一个目录,然后检查它是否存在;除非创建目录没有限制,否则检查总是会成功。
为了实现目标,您需要提前检查是否存在:
rem // Check for existance of first directory:
if exist "C:\Users\kdk\Desktop\New folder\" (
rem // First directory exists, so create second one:
mkdir "C:\Users\kdk\Desktop\New folder (2)"
) else (
rem // First directory does not exist, so create it:
mkdir "C:\Users\kdk\Desktop\New folder"
)
或者:
rem // Check for existance of first directory; if exists, create second one:
if exist "C:\Users\kdk\Desktop\New folder\" mkdir "C:\Users\kdk\Desktop\New folder (2)"
rem // Create first directory, suppress error message in case it already exists:
mkdir "C:\Users\kdk\Desktop\New folder" 2> nul
我在\
的路径上添加了一个尾随if exist
,以便检查现有目录;没有它,if exist
会检查现有文件和目录。
我还假设您的第二个目录应与第一个目录位于同一位置(您说明C:\Users\K YOKESH\Desktop
,我认为它应该是C:\Users\kdk\Desktop
)。
关于引用:您应该始终将整个路径包含在""
内,而不仅仅是单个路径元素 - 请参阅上面我是如何做到的。
只是提示:为了避免多次声明相同的路径,您可以使用环境变量:
rem // Define paths here:
set "FirstDir=C:\Users\kdk\Desktop\New folder"
set "SecondDir=C:\Users\kdk\Desktop\New folder (2)"
rem // Check for existance of first directory:
if exist "%FirstDir\" (
rem // First directory exists, so create second one:
mkdir "%SecondDir%"
) else (
rem // First directory does not exist, so create it:
mkdir "%FirstDir%"
)
或者:
rem // Define paths here:
set "FirstDir=C:\Users\kdk\Desktop\New folder"
set "SecondDir=C:\Users\kdk\Desktop\New folder (2)"
rem // Check for existance of first directory; if exists, create second one:
if exist "%FirstDir%\" mkdir "%SecondDir%"
rem // Create first directory, suppress error message in case it already exists:
mkdir "%FirstDir%" 2> nul
答案 5 :(得分:-1)
尝试这个
创建目录:mkdir“目录路径+目录名”
更改目录:cd“目录路径+目录名称”
希望如此对您有帮助。