[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 求助大神们批处理给子文件夹加上文件夹的前缀名

比如我的一级目录有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:57 编辑
  1. @echo off
  2. set "SourDir=E:\DCOPY\test"
  3. cd /d "%SourDir%"
  4. for /d  %%a in (*) do (
  5. pushd "%%a"
  6. for /d %%b in (*) do ren "%%~fb" "%%a_%%b"
  7. popd
  8. )
  9. pause&exit
复制代码

TOP

  1. @echo off
  2. Setlocal enabledelayedexpansion
  3. :: 生成
  4. for %%a in (a b c) do @md f:\ks\%%a
  5. for /f "delims=" %%i in ('dir /b/l/ad f:\ks\*') do (
  6. for %%a in (a b c) do @md f:\ks\%%i\%%a
  7. )
  8. :: 更改
  9. SET "ph=f:\ks"
  10. for /f "delims=" %%i in ('dir /b/l/ad %ph%\*') do (
  11. call :label_for "%%i"
  12. )
  13. pause&exit
  14. :label_FOR
  15. set/a n=0
  16. set/a c=0
  17. for /f %%a in ('dir /b/l/ad "%ph%\%~1"') do (
  18. set/a c+=1
  19. for %%i in ("attack" "walk" "stand") do (
  20. set/a n+=1
  21. if !n! equ !c! @REN "%ph%\%~1\%%a" "%~1_%%~i"
  22. )
  23. set/a n=0
  24. )
  25. goto :eof
复制代码
踏实一些点.不要着急.你想要的时间都会给你.2

TOP

返回列表