[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] [已解决]批处理怎样批量更改文件名?

c:\hello文件夹中有很多图片,怎么把*****[0].JPG的文件名改成*****.JPG。就是把源文件名中的[0]去掉(“[]”中的数字是无规则的)?有几百个文件,需要用批处理。请高手给个批处理程序。
这里的关键问题是:
1.一个for是绝对解决不了的。
2.for嵌套了,我不懂怎么把“ren 1 2”中的 1 2 对应起来。
1

评分人数

    • batman: 感谢给帖子标题标注[已解决]字样PB + 2

本帖最后由 batman 于 2011-4-20 15:34 编辑

按理来讲三级士官处理这样的问题应该是没问题呀?

况且注册时间为2010-10-23。。。

还有标题显得大众化。。。

同时是否可以先搜索下?
***共同提高***

TOP

2# batman


批量改名有些我是可以解决的,但是for一嵌套,第一个for的变量对应第二个for的变量我就迷糊了——第一个for变量运行一次,第二个for变量就得运行n次。

TOP

本帖最后由 hanyeguxing 于 2011-4-20 16:07 编辑

不包括子目录,文件名中只能出现一次[]:
  1. @echo off
  2. for /f "tokens=1-3 delims=[]" %%a in ('dir /b/a-d "c:\hello\*[*].jpg"') do ren "%%a[%%b]%%c" "%%a%%c"
复制代码
1

评分人数

寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

两个for(针对楼主对for嵌套的不理解):
  1. @echo off
  2. for /r c:\hello %%a in (*.jpg) do (
  3.      for /f "delims=[" %%b in ("%%~na") do ren "%%a" "%%~dpa%%b%%~xa"
  4. )
复制代码
1

评分人数

***共同提高***

TOP

第一个代码有点小问题,'dir /b/a-d *c:\hello\*[*].jpg' 多了个 *,*[*].jpg很亮,我以前一直以为ren 1 2,1是要绝对路径的,看了下帮助发现自己错了。
第二个代码让我知道for循环的嵌套确实没学好,直接把第一个for变量作为第二个for的元素不就结了。——思维死胡同的典型,多谢batman。
总之看了两位的代码,有种豁然开朗的感觉,多谢二位。

TOP

for嵌套没有那么复杂吧,很多时候嵌套的for语句看起来是循环,其实只有一层

TOP

返回列表