在多个目录中创建子文件夹

时间:2016-01-14 18:21:56

标签: batch-file

我正在试图弄清楚如何制作批处理文件,以在单个文件夹的整个目录中创建文件夹+子文件夹。

最初我只是被要求创建一个批处理文件来创建一个文件夹+子文件夹,如果它不存在,我认为我的老板会在启动时运行这个并在读完SO之后提出以下内容。

@echo off
@break off
@title Create Folder with Batch

setlocal EnableDelayedExpansion

if not exist "H:\minecraftedu\saves\" (
  mkdir "H:\minecraftedu\saves\"
  if "!errorlevel!" EQU "0" (
    echo Folder created successfully
  ) else (
    echo Error while creating folder
  )
) else (
  echo Folder already exists
)

pause
exit

然而实际需要的是制作一个命令,我们可以从服务器运行来创建

\\ server \ home \ Students \ 2018(此处的每个文件夹)\ minecraftedu \ saves

以及

\\ server \ home \ Students \ 2019(此处的每个文件夹)\ minecraftedu \ saves

我不知道怎么做,或者甚至可以使用批处理文件。最终目标是让学生Minecraftedu世界保存到他们的服务器空间而不是本地,我的计划是使用符号链接使其以服务器上的文件夹为目标,无论用户登录了什么。

我的工作人员因为我的硬件能力和编程方式让我超越了令人难以置信的基本内容,所以对任何帮助表示赞赏!

2 个答案:

答案 0 :(得分:1)

我最终选择了解决这个问题的方法,只需在SO和网上挖掘就可以找到解决方案。

pushd \\targetdirectory\
for /D %%G in (*) DO mkdir %%G\minecraftedu\saves
pause

暂停只是在那里,所以我可以读完,而我搞砸了,看看我做了多么糟糕,实际搞砸了。

但一切都成功了。

答案 1 :(得分:0)

试试这个

@echo off
SET "basepath=h:\"
SET "structure=\minecraftedu\saves"
for /f "delims=" %%D in ('dir /a:d /b %basepath%') do (
  echo creating "%basepath%%%D%structure%"
  mkdir "%basepath%%%D%structure%"
)

这将为%structure%中为 %basepath%正下方的每个子文件夹创建文件夹结构,它不是递归的。

密切关注“忘记一个人会造成混乱!”