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

[文件操作] [已解决]批处理怎样批量命名一个文件夹下的多个文件夹下的图片的名字?

[复制链接]
发表于 2011-8-15 13:23:49 | 显示全部楼层 |阅读模式
命名的规则是把tif格式的图片的名字改位8位数,也就是说原先的000001.tif改为00000001.tif(位数不足的前面补“0”)
cov001.tif  固定改为10000001.tif

bok001.tif  改为20000001.tif
条件可以是:bok开头的替换为20000

fow001.tif  改为30000001.tif
条件可以是:fow开头的替换为30000

!00001.tif  叹号开头的改为3开头的8位数
条件可以是:!开头的替换为400

000001.tif  改为5000001.tif
条件可以是:0开头的替换为500

leg001.tif  改为60000001.tif
条件可以是:leg开头的替换为600000

cov002.tif  固定改为70000002.tif


附加说明:!00001.tif  bok001.tif   fow001.tif     000001.tif   leg001.tif 不排除这些文件名的后面的实际数字为两位数或三位数  但是总位数不变(可以按文件名的首位判断应该改为什么样的文件名。这样的话就算我重复操作BAT文件也不会造成文件名的累加增位)



我的路径是:E:\王小明\09019491\otiff\000001.tif(图片数量不等)、E:\王小明\09019492\otiff\000001.tif(图片数量不等)、E:\王小明\09019493\otiff\000001.tif(图片数量不等)以此类推
路径的规律是:E:\王小明  不变     
E:\王小明\09019491  这个数字文件夹名字是变化的(位数不会变)
E:\王小明\09019491\otiff   这个后面的“otiff”是不变的
E:\王小明\09019491\otiff\000001.tif   最后面的图片文件名就是要命名的  也就是加位数(6位数改成8位数)
谢谢大家  呵呵

评分

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

查看全部评分

发表于 2011-8-15 13:35:13 | 显示全部楼层
本帖最后由 hanyeguxing 于 2011-8-15 13:52 编辑

文件名规则都是数字或字母+数字?最恨统计字符串长度......
 楼主| 发表于 2011-8-15 13:59:34 | 显示全部楼层
文件名规则都是数字或字母+数字?最恨统计字符串长度......
hanyeguxing 发表于 2011-8-15 13:35



    不用统计呀  这些名字全部是有固定规律的  实际上只要“00”替换为“0000”就OK 呵呵
发表于 2011-8-15 14:04:39 | 显示全部楼层
文件名只有这5个?
  改之前      改之后
000001.tif  00000001.tif
bok001.tif  bok00001.tif
cov001.tif   cov00001.tif
fow001.tif  fow00001.tif
leg001.tif   leg00001.tif
 楼主| 发表于 2011-8-15 14:06:08 | 显示全部楼层
文件名只有这5个?
  改之前      改之后
000001.tif  00000001.tif
bok001.tif  bok00001.tif
cov001. ...
hanyeguxing 发表于 2011-8-15 14:04

是的  没有其他种类  只有5种
 楼主| 发表于 2011-8-15 14:09:58 | 显示全部楼层
一个文件夹就是一本书  包含封面、封底、版权页、目录、前言或说明、正文
发表于 2011-8-15 14:22:49 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. set ""000001.tif"=00000001.tif"
  3. set ""bok001.tif"=bok00001.tif"
  4. set ""cov001.tif"=cov00001.tif"
  5. set ""fow001.tif"=fow00001.tif"
  6. set ""leg001.tif"=leg00001.tif"
  7. for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do if defined "%%~nxa" ren "%%a" "!"%%~nxa"!"
复制代码
 楼主| 发表于 2011-8-15 14:29:57 | 显示全部楼层
本帖最后由 001011 于 2011-8-15 14:32 编辑

谢谢版主  但是 我要改的文件不是只有5个  而是批量的呀  也就是说000001.tif  会有000002.tif  000003.tif或是001111.tif
bok001.tif  cov001.tif   fow001.tif  leg001.tif  这些也一样
我把几个文件传到了115网盘  请您实验一下  呵呵  谢谢
 楼主| 发表于 2011-8-15 14:32:23 | 显示全部楼层
 楼主| 发表于 2011-8-15 14:33:13 | 显示全部楼层
 楼主| 发表于 2011-8-15 14:36:03 | 显示全部楼层
是的  没有其他种类  只有5种
001011 发表于 2011-8-15 14:06

五种  不是五个
 楼主| 发表于 2011-8-15 14:43:06 | 显示全部楼层
我感觉思路这样比较简单:凡是E:\王小明下的.TIF后缀的文件 文件名带有“00”转换为“0000”  这样是否简单些呢  呵呵
发表于 2011-8-15 14:57:04 | 显示全部楼层
本帖最后由 hanyeguxing 于 2011-8-15 15:08 编辑

回复 12# 001011
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
  3.     set "a=%%~nxa"&set "b=!a:0000=00!"&set "c=!a:00=0000!"
  4.     if "!a!"=="!b!" ren "%%a" "!c!"
  5. )
复制代码

评分

参与人数 1技术 +1 收起 理由
001011 + 1 非常感谢

查看全部评分

 楼主| 发表于 2011-8-15 15:02:47 | 显示全部楼层
谢谢版主老大  有四个“0”的话 位数就多啦  呵呵
 楼主| 发表于 2011-8-15 15:15:49 | 显示全部楼层
根据老大的原始脚本改了一下  OK了  谢谢呀
@echo off&setlocal enabledelayedexpansion
for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
    set "a=%%~nxa"&set "b=!a:000=A!"
    if /i "!b!" neq "!a!" ren "%%a" "!b!"
)
for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
    set "a=%%~nxa"&set "b=!a:A=00000!"
    if /i "!b!" neq "!a!" ren "%%a" "!b!"
)
for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
    set "a=%%~nxa"&set "b=!a:bok=bok00!"
    if /i "!b!" neq "!a!" ren "%%a" "!b!"
)
for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
    set "a=%%~nxa"&set "b=!a:cov=cov00!"
    if /i "!b!" neq "!a!" ren "%%a" "!b!"
)
for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
    set "a=%%~nxa"&set "b=!a:fow=fow00!"
    if /i "!b!" neq "!a!" ren "%%a" "!b!"
)
for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
    set "a=%%~nxa"&set "b=!a:leg=leg00!"
    if /i "!b!" neq "!a!" ren "%%a" "!b!"
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-20 06:57 , Processed in 0.023429 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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