我正在尝试在另一个文件夹中创建多个文件夹的文件夹结构。
下面的脚本创建相同的子文件夹,但不是我需要的。
@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
这里的假设是您想要动态创建子文件夹。
我的另一个假设是,这里的子文件夹是数字的,可能只是您为了简化问题而给出的一个用例。如果您的现实世界文件夹将手动添加为环境变量,那么这将不起作用,因为该计数器是数字的。
这可以通过迭代子文件夹,然后为每个子目录运行循环并创建文件夹来实现。
@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 个计数。