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

[文件操作] 批处理怎样批量改名及建立文件夹?

[复制链接]
发表于 2014-7-30 10:36:59 | 显示全部楼层 |阅读模式
本帖最后由 liudetao 于 2014-8-4 12:33 编辑

我的文件夹结构是这样的,一级文件夹为654021;在这个一级文件夹里有众多二级文件夹(例如:001001GB00001、001001GB00002等等);在每一个二级文件夹里存放的是很多JPG格式文件,JPG格式文件命名(例如:a.jpg、a(1).jpg、a(2).jpg.....  b.jpg、b(1).jpg、b(2).jpg.....以此类推,当然每一个二级文件夹所包含的情况不一样,有的二级文件夹中有a开头的、b开头的、c开头的JPG文件;有的只有a开头的、c开头的JPG文件,不一定要连续,但一定是以不同字母开头的JPG文件),不同字母代表不同种类材料(例如:a开头的JPG文件对应的是申请书,b开头的JPG文件对应的是审批表等等);那么最后能过BAT处理得到的结果(例如:一级文件夹654021中的二级文件夹001001GB00001会变成654021001001GB00001;二级文件夹654021001001GB00001中会自动生成以a开头的JPG文件对应的“申请书”文件夹,并将a开头的JPG文件剪切到这个“申请书”文件夹,并将所有a开头的JPG文件命名为:a.jpg变成654021001001GB00001#1.jpg;a(1).jpg变成654021001001GB00001#2.jpg;a(2).jpg变成654021001001GB00001#3.jpg等等,以此类类推)

程序可以根据实际情况,允许增加不同种类材料,不只有a开头、b开头,还有c、d、e......可以灵活设置。
发表于 2014-8-3 10:29:33 | 显示全部楼层
本帖最后由 xxpinqz 于 2014-8-3 10:32 编辑


没人答可能只是因为你原先问题表述的不清?
自己复制几个文件夹测试下。。。。放在你的一级目录(例如:和654021文件夹平级)执行。

  1. @echo off&setlocal enabledelayedexpansion
  2. %1 for /f "tokens=1,3* delims=#" %%a in ('%0 : ^|sort') do (
  3. %1    if "%%a%%b"=="!tmp!" (set /a n+=1)else set n=1&set "tmp=%%a%%b"
  4. %1    move "%%c" "%%~dpc%%b\%%a#!n!.jpg"
  5. %1 )
  6. %1 goto :eof

  7. set "str="a=申请书" "b=审批表" "c=审核表" "d=立项表""
  8. for %%a in (%str%) do set %%a

  9. (for /d %%a in (*) do (
  10.     pushd "%%a"
  11.     for /f "delims=" %%b in ('dir /b/ad') do (
  12.         ren "%%b" "%%a%%b"
  13.         for %%c in ("%%a%%b\*.jpg") do (
  14.             for /f "tokens=1-2 delims=()" %%d in ("%%~nc") do (
  15.                 set ".=00000%%e"
  16.                 md "%%a%%b\!%%d!"
  17.                 echo,#%%a%%b#%%d!.:~-5!#!%%d!#%%~fc
  18.             )
  19.         )
  20.     )
  21.     popd
  22. ))2>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
liudetao + 1 太厉害了!

查看全部评分

 楼主| 发表于 2014-8-4 12:30:25 | 显示全部楼层
你好,我试了,这个程序很好用,能不能再麻烦你一下,帮我在程序了加上,要处理的一级文件夹的路径,如:d:\652301,这样就不用每次处理数据,就要拷贝程序了!
发表于 2014-8-5 11:49:46 | 显示全部楼层
回复 3# liudetao


    这不一样吗,定义路径,每一次运行不也要改。
  1. @echo off&setlocal enabledelayedexpansion
  2. cd /d "d:\6054321"
  3. %1 for /f "tokens=1,3* delims=#" %%a in ('%0 : ^|sort') do (
  4. ......
复制代码
 楼主| 发表于 2014-8-5 22:47:11 | 显示全部楼层
谢谢了,朋友!!
 楼主| 发表于 2014-8-5 23:08:58 | 显示全部楼层
改了,执行后,没有作用!!
发表于 2014-8-6 15:50:30 | 显示全部楼层
回复 6# liudetao
  1. @echo off&setlocal enabledelayedexpansion
  2. %1 for /f "tokens=1,3* delims=#" %%a in ('%0 : ^|sort') do (
  3. %1    if "%%a%%b"=="!tmp!" (set /a n+=1)else set n=1&set "tmp=%%a%%b"
  4. %1    move "%%c" "%%~dpc%%b\%%a#!n!.jpg"
  5. %1 )
  6. %1 goto :eof

  7. set "str="a=申请书" "b=审批表" "c=审核表" "d=立项表""
  8. for %%a in (%str%) do set %%a

  9. set "dst="d:\654021""

  10. cd /d %dst%
  11. for %%a in (%dst%) do set "cd_=%%~nxa"

  12. (for /f "delims=" %%b in ('dir /b/ad') do (
  13.     ren "%%b" "%cd_%%%b"
  14.     for %%c in ("%cd_%%%b\*.jpg") do (
  15.         for /f "tokens=1-2 delims=()" %%d in ("%%~nc") do (
  16.             set ".=00000%%e"
  17.             md "%cd_%%%b\!%%d!"
  18.             echo,#%cd_%%%b#%%d!.:~-5!#!%%d!#%%~fc
  19.         )
  20.     )
  21. ))2>nul
复制代码
发表于 2014-8-6 17:20:46 | 显示全部楼层
回复 2# xxpinqz


    想知道 这个表情里的 : 代表什么...莫非是腋毛?
发表于 2014-8-6 18:41:39 | 显示全部楼层
回复 8# CrLf


    仁兄真是让人敬仰,几年没出上论谈,刚一上还是看到你的最后回复。呵呵
发表于 2014-8-6 20:25:35 | 显示全部楼层
回复 9# wc726842270


    最近常冒泡,呵呵
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-21 07:52 , Processed in 0.033191 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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