Board logo

标题: [文件操作] 批处理如何把多个文件夹按一定格式重命名? [打印本页]

作者: Snowhurst    时间: 2021-1-1 11:08     标题: 批处理如何把多个文件夹按一定格式重命名?

小白一个。工作中经常遇到。
一、如何对一批文件夹按固定格式重名,如:
ABC001
ABC002
ABC003
……………
ABC030

二、按上述名称要求,新建一批文件夹,如30个。
作者: qixiaobin0715    时间: 2021-1-1 13:18

一、
  1. @echo off
  2. set n=1000
  3. setlocal enabledelayedexpansion
  4. for /d %%a in (*) do (
  5. set /a n+=1
  6. set m=!n:~1!
  7. ren "%%a" "ABC!m!"
  8. )
  9. pause
复制代码
二、
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1,1,30) do (
  4. set /a n=1000+%%a
  5. set n=!n:~1!
  6. md ABC!n!
  7. )
  8. pause
复制代码

作者: netdzb    时间: 2021-1-1 16:50

回复 2# qixiaobin0715

他的要求是要改文件夹的名字,所以你的代码还要修改。
作者: qixiaobin0715    时间: 2021-1-1 20:19

本帖最后由 qixiaobin0715 于 2021-1-1 20:22 编辑

回复 3# netdzb
不要想当然,自己试试看
作者: Snowhurst    时间: 2021-1-1 22:05

回复 2# qixiaobin0715

非常感谢!和我需要的一样一样的,非常好用!谢谢了!
作者: Batcher    时间: 2021-1-3 21:34

回复 1# Snowhurst


1.bat
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set n=0
  4. for /d %%a in (*) do (
  5.     set /a n+=1
  6.     set m=000!n!
  7.     ren "%%a" "ABC!m:~-3!"
  8. )
复制代码

作者: Batcher    时间: 2021-1-3 21:36

回复 2# qixiaobin0715


2.bat 可以减少一个 set /a 的运算
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /l %%a in (1001,1,1030) do (
  4.     set n=%%a
  5.     md ABC!n:~-3!
  6. )
复制代码

作者: qixiaobin0715    时间: 2021-1-4 06:48

回复 7# Batcher
对的对的,还是这样好。




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