找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 18214|回复: 1

[文件操作] 【已解决】奇怪的批处理重命名问题

[复制链接]
发表于 2022-3-27 16:55:56 | 显示全部楼层 |阅读模式
前情提要:
        现有一Test_A文件夹,内有子文件夹数十余,名称不重要且无规律,每个子文件夹内皆有子文件数十余。
        1.欲使Test_A中子文件夹改名为甲_001,乙_002,丙_003,丁_004...
        2.基于1.Test_A子文件夹改名结果,令其子文件改名为乙_001,乙_003,乙_004...
       (规则为:如果文件夹是甲字开头则文件夹内文件要是乙开头,以此类推,甲对乙,乙对丙...加入有三个的话最后丙对甲)
        要求不能有过程文件生成,限batch语言

        a).题外话,batch的for和Python的for自变量好像有多变量的???求教!

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

发表于 2022-3-28 10:42:12 | 显示全部楼层
  1. bat放入test_a下。
  2. @echo off
  3. setlocal enabledelayedexpansion
  4. set list=甲乙丙丁戊己庚辛壬癸子丑寅卯辰巳午未申酉戌亥
  5. set /a n=10000
  6. for /f "delims=" %%a in ('dir /b/ad') do (
  7.     set count=!n:~1!
  8.     set /a mod=count%%22
  9.     call set word=%%list:~!mod!,1%%
  10.     rem 天干地支22个文字取余,循环找出甲乙丙丁……
  11.     set /a n+=1
  12.     set sn=!n:~-3!
  13.     rem 文件夹序号
  14.     pushd "%%~a"
  15.     set /a m=10000
  16.     set /a mod+=1
  17.     call set word_2=%%list:~!mod!,1%%
  18.     rem 找出后一个天干地支
  19.     for /f "delims=" %%i in ('dir /b /a-d') do (
  20.         set /a m+=1
  21.         set sn_m=!m:~-3!
  22.         echo;ren %%i !word_2!_!sn_m!%%~xi
  23.         rem 测试后去掉echo;  子文件改名
  24.     )
  25.     popd
  26.     echo;ren %%a !word!_!sn!
  27.     rem 测试后去掉echo; 文件夹改名
  28. )
  29. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
TAT + 1 一年了,我终于看懂,批处理是有列表的!66 ...

查看全部评分

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 19:56 , Processed in 0.018555 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表