找出整个文件夹结构是否存在(CMD批处理)

3
我觉得这应该很容易做到,但我自己无法完全弄清楚。也许有人能够帮忙。
我有一个小批处理脚本,基本上检查文件夹Folder1是否已经存在。如果不存在,它将创建Folder1Folder6。如果存在,它将简单地回显这个事实。
@ECHO OFF
If not exist Folder1 (for /L %%a in (1,1,6) do md Folder%%a) else (ECHO Folder structure already exists)

现在我想要做的是将If not exist Folder1替换为更具有意义的内容。例如 If not exist 带有任何大于或等于 'Folder' 的字符串的文件夹 有什么方法可以实现吗?
3个回答

2
不会。
for /L %%a in (1,1,6) do md Folder%%a

是否可以更轻松地创建目录,无论这些目录是否已经存在?

for /L %%a in (1,1,6) do md Folder%%a 2>nul

应该抑制已经存在的目录的消息。

1

这可能适用于您:

rem 如果文件夹不存在
if not exist "folder1" (
    rem 任何字符串大于或等于“Folder”
    if "folder1" geq "Folder" (
        rem 做某事。
        rem 做更多的事情。
    )
)

哦,天哪!...我只写下了OP所需要的内容,显然我只是一个写手,而不是思考者 :-) - Endoro
哦,所以大于或等于总是为真,无论什么情况?该死。那么这样做行不通。附注:手头的任务实际上是我可能需要在评估日(下周一)完成的某事,这就是为什么我特别寻找“正确”的方法。否则,我可能只会压制消息并完成它。 - user2534826
为了获得更好的答案,请尽可能提出更具体的问题,谢谢。 - Endoro
好的。我想要做的基本上是检查文件夹1-6(Folder1,Folder2,Folder3等)是否已经存在。如果不存在,我希望脚本可以创建它们。我的当前脚本只检查Folder1是否存在,这并不太实用。 - user2534826
你可以采用Peter的答案,它会完全满足你的需求。 - Endoro

0
@echo off
set "flag="
for /L %%a in (1,1,6) do if not exist "Folder%%a\" set flag=1
if defined flag (
echo at least one of your folders is missing captain.
for /L %%a in (1,1,6) do md Folder%%a 2>nul
) else (
echo Warp speed, no folders to create
)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接