在多个文件夹中创建多个文件夹的批处理脚本

问题描述 投票:0回答:1

我正在尝试在另一个文件夹中创建多个文件夹的文件夹结构。

下面的脚本创建相同的子文件夹,但不是我需要的。

@ECHO ON
SET RootDir=C:\Main
SET SubA=A,B
SET SubB=1,2,3,4,5,6,7,8
FOR %%A IN (%SubA%) DO FOR %%B IN (%SubB%) DO IF NOT EXIST "%RootDir%\%%~A\%%~B" MD "%RootDir%\%%~A\%%~B"
EXIT

我需要支持修改脚本以根据所需的文件夹结构创建。

 - Main folder
   - A
      - 1
      - 2
      - 3
      - 4
   - B
      - 5
      - 6
      - 7
      - 8
windows batch-file directory-structure
1个回答
0
投票

这里的假设是您想要动态创建子文件夹。

我的另一个假设是,这里的子文件夹是数字的,可能只是您为了简化问题而给出的一个用例。如果您的现实世界文件夹将手动添加为环境变量,那么这将不起作用,因为该计数器是数字的。

这可以通过迭代子文件夹,然后为每个子目录运行循环并创建文件夹来实现。

@echo off
setlocal enabledelayedexpansion
set "rootdir=C:\Main"
set "subs=A,B"
set "cnt=0"
for %%i in (%subs%) do (
    for /l %%a in (1,1,4) do (
        set /a cnt+=1
        md "%rootdir%\%%i\!cnt!" 2>nul
  )
)

即使您有更多子文件夹,即

C
D
E
,这也将起作用,因为
for /l
循环只会为每个文件夹增加 4 个计数。

© www.soinside.com 2019 - 2024. All rights reserved.