Board logo

标题: [文件操作] 【已解决】批处理如何将文件名中的指定字符或字符串按指定规则替换成其他内容? [打印本页]

作者: wpy4206    时间: 2016-9-1 18:04     标题: 【已解决】批处理如何将文件名中的指定字符或字符串按指定规则替换成其他内容?

本帖最后由 wpy4206 于 2016-9-2 11:49 编辑

批处理如何获取文件名的字母并根据字母编码表重命名
我有很多照片,都是以字母开头命名的,比如A123.jpg,B2356.jpg,...,而且存放在同一文件夹的不同子文件夹中(子文件夹有2级),想要批量重命名这些照片,根据对应关系A---张三,B---李四...

对应关系:
对应编码        人名
A                张三
B                李四

重命名结果:

张三123.jpg,李四2346.jpg...,不更改原来的照片存放路径。


答案见四楼,去掉第五行的echo
作者: GNU    时间: 2016-9-1 19:22

完整对应关系发出来看看
别编数据,否则格式不对会导致代码没法用。
作者: wskwfkbdn    时间: 2016-9-1 19:43

sort命令行满足你的需求
作者: xxpinqz    时间: 2016-9-1 19:46

  1. @echo off&setlocal enabledelayedexpansion
  2. for %%a in ("a=张三" "b=李四" "c=王五" "d=赵六") do set %%a
  3. for /f "delims=" %%a in ('dir /s /b /a-d *.jpg') do (
  4.     set "s=%%~nxa"
  5.     for %%b in ("!s:~,1!") do if defined %%~b echo ren "%%~fa" "!%%~b!!s:~1!"
  6. )
  7. pause
复制代码

作者: wpy4206    时间: 2016-9-1 19:46

回复 2# GNU


    就是对应几个人名
作者: wpy4206    时间: 2016-9-1 19:49

回复 4# xxpinqz


    运行了一下,没有改变,看看是不是哪里不对?
作者: wpy4206    时间: 2016-9-1 19:50

回复 3# wskwfkbdn


    回头我学习一下这个命令
作者: xxpinqz    时间: 2016-9-1 20:02

回复 6# wpy4206

你不是写了一小段了,仔细看下第5行
  1. echo ren
复制代码

作者: happy886rr    时间: 2016-9-1 22:31

回复 1# wpy4206
第三方ren2
  1. @echo off
  2. set A=张三
  3. set B=李四
  4. ren2 -f -r "A([0-9]+(?:\.jpg|\.JPG))" "%A%$1"
  5. ren2 -f -r "B([0-9]+(?:\.jpg|\.JPG))" "%B%$1"
  6. pause
复制代码

作者: wpy4206    时间: 2016-9-2 06:08

回复 8# xxpinqz


    昨天有事,没来得及看到你的回复,我刚接触bat没几天,还是有点看不懂
作者: wpy4206    时间: 2016-9-2 06:12

回复 9# happy886rr


    第三方ren2,哪里可以下载?
作者: happy886rr    时间: 2016-9-2 07:11

回复 11# wpy4206
ren2下载地址http://batch-cn.qiniudn.com/tool/ren2.exe

如果你想自己编译ren2添加新功能,清下载其源码,用VS编译就行。
这是它的源码http://www.lomont.org/Software/Utilities/Ren2/rename2.zip
作者: wpy4206    时间: 2016-9-2 07:24

回复 12# happy886rr


    运行不成功啊
作者: happy886rr    时间: 2016-9-2 07:34

本帖最后由 happy886rr 于 2016-9-2 07:37 编辑

回复 13# wpy4206
我的脚本,只添加了张三、李四,至于其他字母,请自行添加。我的只是演示替换A、B开头的。你的目录下得有A、B开头的jpg文件。而且这个ren2是在xp、win7完美运行。至于win10如无法运行,请自行用VS编译源码。
源码http://www.lomont.org/Software/Utilities/Ren2/rename2.zip
作者: wpy4206    时间: 2016-9-2 07:38

回复 14# happy886rr


    哦,我是win10系统,感谢,起的挺早的啊
作者: wpy4206    时间: 2016-9-2 10:14

回复 2# GNU


    有空帮写个支持win10的bat
作者: wpy4206    时间: 2016-9-2 10:19

回复 4# xxpinqz


    运行结果见图,没有改变文件名,但是bat显示应该是改过了
作者: GNU    时间: 2016-9-2 10:21

回复 16# wpy4206


    4楼代码第5行把 echo 这4个字母删掉,再执行一次。




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