标题: [文件操作] 求助大神们批处理给子文件夹加上文件夹的前缀名 [打印本页]
作者: wamgle 时间: 2018-2-2 12:41 标题: 求助大神们批处理给子文件夹加上文件夹的前缀名
比如我的一级目录有a,b,c三个文件夹
a、b、c每个里边有三个子文件夹,攻击,行走,站立
需要将每个子文件夹的名字替换成英文并加上上级文件夹的前缀,
如a文件夹下三个子文件夹名字会变成: a_attack,a_walk,a_stand
如b文件夹下三个子文件夹名字会变成: b_attack,b_walk,b_stand
如c文件夹下三个子文件夹名字会变成: c_attack,c_walk,c_stand
一级目录下可能不止abc三个文件夹,还可能更多!!
作者: yhcfsr 时间: 2018-2-2 15:55
本帖最后由 yhcfsr 于 2018-2-2 15:57 编辑
- @echo off
- set "SourDir=E:\DCOPY\test"
- cd /d "%SourDir%"
- for /d %%a in (*) do (
- pushd "%%a"
- for /d %%b in (*) do ren "%%~fb" "%%a_%%b"
- popd
- )
- pause&exit
复制代码
作者: 慕夜蓝化 时间: 2018-2-3 12:53
- @echo off
- Setlocal enabledelayedexpansion
-
- :: 生成
- for %%a in (a b c) do @md f:\ks\%%a
- for /f "delims=" %%i in ('dir /b/l/ad f:\ks\*') do (
- for %%a in (a b c) do @md f:\ks\%%i\%%a
- )
- :: 更改
-
-
- SET "ph=f:\ks"
- for /f "delims=" %%i in ('dir /b/l/ad %ph%\*') do (
- call :label_for "%%i"
- )
-
- pause&exit
-
- :label_FOR
- set/a n=0
- set/a c=0
- for /f %%a in ('dir /b/l/ad "%ph%\%~1"') do (
- set/a c+=1
- for %%i in ("attack" "walk" "stand") do (
- set/a n+=1
- if !n! equ !c! @REN "%ph%\%~1\%%a" "%~1_%%~i"
- )
- set/a n=0
- )
- goto :eof
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |