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

[文本处理] 批处理怎样可以批量用文件夹名命名文件?

[复制链接]
发表于 2011-12-23 19:39:38 | 显示全部楼层 |阅读模式
一个文件夹下有列文件夹:
图片 照片 相片 picture .........(还有很多)
把“图片”文件夹下的文件命名如下:
图片  图片_01 图片_02 图片_03 ........
把“照片”文件夹下的文件命名如下:
照片 照片_01 照片_02 照片_03 .........
把“相片”文件夹命名如下:
相片 相片_01 相片_02 相片_03 .........
把“picture"文件夹下的文件命名如下:
picture picture_01 picture_02 picture_03 .............
那位兄弟帮我写一个bat,一次性就可以完成这些操作
发表于 2011-12-23 20:00:03 | 显示全部楼层
放在图片  照片   相片...同目录!
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /ad /s /b') do (
  4.    for /f "delims=" %%b in ('dir /a-d /s /b "%%a"') do (
  5.       set /a a+=1
  6.       if !a! lss 10 (
  7.           ren "%%b" %%~na_0!a!%%~xb
  8. ) else (
  9.           ren "%%b" %%~na_!a!%%~xb
  10. )
  11. )
  12. )
复制代码
发表于 2011-12-23 20:11:25 | 显示全部楼层

RE: 怎样可以批量用文件夹名命名文件?

本帖最后由 qq2501 于 2011-12-23 21:38 编辑

这个应该就是你想要的功能吧。需要放在图片、相片、picture 之类的文件夹上一个目录。
感觉好用就给我加个分吧☺
  1. @echo off & setlocal ENABLEDELAYEDEXPANSION
  2. for /f "usebackq" %%a in (`dir /b /ad`) do (
  3. cd %%a
  4. set a=0
  5.         for %%i in (*.*) do (
  6.                 if !a! EQU 0 (
  7.                         ren %%i %%a%%~xi
  8.                 )
  9.                         if !a! LSS 10 (
  10.                                
  11.                                 ren %%i %%a_0!a!%%~xi
  12.                                 set /a a+=1
  13.                         ) else (
  14.                                
  15.                                 ren %%i %%a_!a!%%~xi
  16.                                 set /a a+=1
  17.                         )
  18.         )
  19. cd ..
  20. )
  21. echo,succsefully
  22. pause>nul
复制代码

评分

参与人数 1技术 +1 收起 理由
asspig + 1 能否再帮我改一下

查看全部评分

 楼主| 发表于 2011-12-23 20:11:52 | 显示全部楼层
本帖最后由 asspig 于 2011-12-23 20:24 编辑
放在图片  照片   相片...同目录!
jellyhk 发表于 2011-12-23 20:00

非常感谢,相片里的文件名是要变成这样 相片(第一个文件) 相片_01(第二个文件) 相片_02(第三个文件) 相片_03(第三个文件)
面且每个子文件夹都是像这样开始重新编号
 楼主| 发表于 2011-12-23 20:17:34 | 显示全部楼层
文件夹的名字不止图片 照片 相片 这几个的,还有很多文件夹的
发表于 2011-12-23 21:03:32 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /ad') do (
  4.     set n=0
  5.     for %%i in ("%%a\*.*") do (
  6.         set /a n+=1
  7.         ren "%%i" "%%a_!n!%%~xi"
  8.     )
  9. )
复制代码
 楼主| 发表于 2011-12-23 21:11:58 | 显示全部楼层
awk 发表于 2011-12-23 21:03


还差点,我要实现的效果是 相片里的文件名是要变成这样 相片(第一个文件) 相片_01(第二个文件) 相片_02(第三个文件) 相片_03(第四个文件)
你的脚本实现的效果是  相片_1(第一个文件) 相片_2(第二个文件) 相片_3(第三个文件)
发表于 2011-12-23 21:17:26 | 显示全部楼层
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "delims=" %%a in ('dir /b /ad') do (
  4.     set n=10000
  5.     for %%i in ("%%a\*.*") do (
  6.         set suffix=!n:~-2!
  7.         if "!suffix!" equ "00" (
  8.             set "newname=%%a%%~xi"
  9.         ) else (
  10.             set "newname=%%a_!suffix!%%~xi"
  11.         )
  12.         ren "%%i" "!newname!"
  13.         set /a n+=1
  14.     )
  15. )
复制代码
 楼主| 发表于 2011-12-23 21:19:42 | 显示全部楼层
awk 发表于 2011-12-23 21:17



   太感谢了,可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-18 15:34 , Processed in 0.018958 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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