Board logo

标题: [文件操作] 【已解决】奇怪的批处理重命名问题 [打印本页]

作者: TAT    时间: 2022-3-27 16:55     标题: 【已解决】奇怪的批处理重命名问题

前情提要:
        现有一Test_A文件夹,内有子文件夹数十余,名称不重要且无规律,每个子文件夹内皆有子文件数十余。
        1.欲使Test_A中子文件夹改名为甲_001,乙_002,丙_003,丁_004...
        2.基于1.Test_A子文件夹改名结果,令其子文件改名为乙_001,乙_003,乙_004...
       (规则为:如果文件夹是甲字开头则文件夹内文件要是乙开头,以此类推,甲对乙,乙对丙...加入有三个的话最后丙对甲)
        要求不能有过程文件生成,限batch语言

        a).题外话,batch的for和Python的for自变量好像有多变量的???求教!
作者: for_flr    时间: 2022-3-28 10:42

  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
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2