标题: [文件操作] 【已解决】创建目录和子目录的BAT代码请大佬修复一下,子目录无法创建 [打印本页]
作者: zxar520 时间: 2024-3-31 13:43 标题: 【已解决】创建目录和子目录的BAT代码请大佬修复一下,子目录无法创建
- @echo off
- setlocal enabledelayedexpansion
-
- :: 设置父目录路径
- set "ParentDir=D:\Desktop\新建文件夹"
-
- :: 清除任何可能存在的旧目录
- rd /s /q "%ParentDir%\*" 2>nul
-
- :: 循环创建200个主目录,每个目录对应一个编号范围
- for /l %%i in (0,1,12) do (
- :: 计算子目录编号的起始值
- set /a "startNumber=%%i*1000"
-
- :: 创建主目录
- mkdir "%ParentDir%\%%i" 2>nul
-
- :: 如果成功创建主目录,则进入该目录并创建子目录
- if exist "%ParentDir%\%%i" (
- cd /d "%ParentDir%\%%i"
-
- :: 在该目录下创建从startNumber到startNumber+999的子目录
- for /l %%j in (%startNumber%,1,%startNumber%+999) do (
- set "subdirName=%%j"
- mkdir "!subdirName!" 2>nul
- )
-
- :: 返回上一级目录
- cd /d "%ParentDir%"
- ) else (
- echo 无法创建主目录 "%ParentDir%\%%i"
- )
- )
-
- echo 创建完成。
- pause
复制代码
这一段无法创建子目录,请大佬修复一下,非常感谢!!!
需求:
0目录下从0~999
1目录下从1000~1999
...
10目录下从10001~10999
...
100目录下从100001~100999
作者: 77七 时间: 2024-3-31 15:21
- @echo off
- rem 批处理保存为ansi编码格式
- set "ParentDir=D:\新建文件夹"
- rd /s /q "%ParentDir%" 2>nul
- md "%ParentDir%"
- pushd "%ParentDir%"
- setlocal enabledelayedexpansion
- for /l %%l in (0,1,100) do (
- set /a n=%%l*1000,m=n+999
- for /l %%k in (!n!,1,!m!) do (
- md "%%l\%%k"
- )
- )
- endlocal
- popd
- pause
复制代码
作者: Five66 时间: 2024-3-31 15:33
注意完整语句范围内的语句可能需要
setlocal enabledelayedexpansion
作者: zxar520 时间: 2024-3-31 16:04
完美,非常感谢大佬!!!
作者: aloha20200628 时间: 2024-3-31 16:40
一楼代码中的如下句式(二楼代码中的第4行)- rd /s /q "%ParentDir%\*" 2>nul
复制代码
会被系统报错,还是应改为下式为妥- :: 清除任何可能存在的旧目录
- cd /d "%ParentDir%"
- (for /f "delims=" %d in ('dir/b/ad') do rd /s/q "%~d") 2>nul
复制代码
作者: aloha20200628 时间: 2024-3-31 17:28
本帖最后由 aloha20200628 于 2024-3-31 17:30 编辑
也许习惯了 del *.* 句式的用法,但偏偏 rd 处理的目标目录拒绝通配符(详见 rd /?用法),不能连发只能点射 要想连发就得用 for 循环句式帮忙了...
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |