标题: [文件操作] [已解决]批处理怎样批量命名一个文件夹下的多个文件夹下的图片的名字? [打印本页]
作者: 001011 时间: 2011-8-15 13:23 标题: [已解决]批处理怎样批量命名一个文件夹下的多个文件夹下的图片的名字?
命名的规则是把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位数)
谢谢大家 呵呵
作者: hanyeguxing 时间: 2011-8-15 13:35
本帖最后由 hanyeguxing 于 2011-8-15 13:52 编辑
文件名规则都是数字或字母+数字?最恨统计字符串长度......
作者: 001011 时间: 2011-8-15 13:59
文件名规则都是数字或字母+数字?最恨统计字符串长度......
hanyeguxing 发表于 2011-8-15 13:35
不用统计呀 这些名字全部是有固定规律的 实际上只要“00”替换为“0000”就OK 呵呵
作者: hanyeguxing 时间: 2011-8-15 14:04
文件名只有这5个?
改之前 改之后
000001.tif 00000001.tif
bok001.tif bok00001.tif
cov001.tif cov00001.tif
fow001.tif fow00001.tif
leg001.tif leg00001.tif
作者: 001011 时间: 2011-8-15 14:06
文件名只有这5个?
改之前 改之后
000001.tif 00000001.tif
bok001.tif bok00001.tif
cov001. ...
hanyeguxing 发表于 2011-8-15 14:04
是的 没有其他种类 只有5种
作者: 001011 时间: 2011-8-15 14:09
一个文件夹就是一本书 包含封面、封底、版权页、目录、前言或说明、正文
作者: hanyeguxing 时间: 2011-8-15 14:22
- @echo off&setlocal enabledelayedexpansion
- set ""000001.tif"=00000001.tif"
- set ""bok001.tif"=bok00001.tif"
- set ""cov001.tif"=cov00001.tif"
- set ""fow001.tif"=fow00001.tif"
- set ""leg001.tif"=leg00001.tif"
- for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do if defined "%%~nxa" ren "%%a" "!"%%~nxa"!"
复制代码
作者: 001011 时间: 2011-8-15 14:29
本帖最后由 001011 于 2011-8-15 14:32 编辑
谢谢版主 但是 我要改的文件不是只有5个 而是批量的呀 也就是说000001.tif 会有000002.tif 000003.tif或是001111.tif
bok001.tif cov001.tif fow001.tif leg001.tif 这些也一样
我把几个文件传到了115网盘 请您实验一下 呵呵 谢谢
作者: 001011 时间: 2011-8-15 14:32
http://u.115.com/file/dn6yjtlj#
王小明.zip
作者: 001011 时间: 2011-8-15 14:33
http://u.115.com/file/dn6yjtlj#
王小明.zip
作者: 001011 时间: 2011-8-15 14:36
是的 没有其他种类 只有5种
001011 发表于 2011-8-15 14:06
五种 不是五个
作者: 001011 时间: 2011-8-15 14:43
我感觉思路这样比较简单:凡是E:\王小明下的.TIF后缀的文件 文件名带有“00”转换为“0000” 这样是否简单些呢 呵呵
作者: hanyeguxing 时间: 2011-8-15 14:57
本帖最后由 hanyeguxing 于 2011-8-15 15:08 编辑
回复 12# 001011 - @echo off&setlocal enabledelayedexpansion
- for /f "delims=" %%a in ('dir /s/b/a-d "E:\王小明\*.tif"') do (
- set "a=%%~nxa"&set "b=!a:0000=00!"&set "c=!a:00=0000!"
- if "!a!"=="!b!" ren "%%a" "!c!"
- )
复制代码
作者: 001011 时间: 2011-8-15 15:02
谢谢版主老大 有四个“0”的话 位数就多啦 呵呵
作者: 001011 时间: 2011-8-15 15:15
根据老大的原始脚本改了一下 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!"
)
作者: 001011 时间: 2011-8-15 16:20
问题做了调整 从新编辑了 顶起来 呵呵
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |