Board logo

标题: [其他] 求助:如何用文件名第一个点号后的字符串重命名文件 [打印本页]

作者: wangjunke_1981    时间: 2009-4-16 09:24     标题: 求助:如何用文件名第一个点号后的字符串重命名文件

D:\wangjunke下游一系列文件
output1025.001.tif
output1025.002.tif
output31.001.a.tif
如何找出各个文件名从左至右的第一个字符“.”,然后将该字符连同后面的文件名字符保存起来。
即,我的重命名规则为:wangjunke.001.tif
                                             wangjunke.002.tif
                                              wangjunke.001.a.tif
因工作需要,急,请大侠指教。
作者: lxzzr    时间: 2009-4-16 10:14

  1. @echo off
  2. for /r D:\wangjunke %%a in (*.tif) do (
  3. for /f "tokens=2,3 delims=." %%b in ("%%~na") do (
  4. if "%%c" == "" (
  5. ren %%a wangjunke.%%b.tif
  6. ) else (
  7. ren %%a wangjunke.%%b.%%c.tif
  8. )
  9. )
  10. )
  11. pause
复制代码


这样行不?
作者: fastslz    时间: 2009-4-16 10:16

  1. @echo off
  2. for /f "tokens=1,* delims=." %%a in ('dir/s/b/a-d D:\wangjunke\*.tif') do echo ren "%%a.%%b" "wangjunke.%%b"
复制代码

未测试,实际使用把echo去掉
作者: wangjunke_1981    时间: 2009-4-17 09:21     标题: 回复 2楼 的帖子

多谢回复,暂时未测试。
我的问题是这样的:
待更名文件是由C输出的:
有很多次输出:例如:
第一次:output2014.001.tif
        output2014.002.tif
        output2014.003.tif
        ……
        output2014.050.tif
        ……
更名为:wangjunke.001.tif
        wangjunke.002.tif
        wangjunke.003.tif
        ……
        wangjunke.050.tif
        ……
其中wangjunke是以参数传进来,这个我可以自己处理。
第二次:output24.001.a.tif
        output24.001.b.tif
        
更名为:zhangsan.001.a.tif
        zhangsan.001.b.tif
张三也是参数,这个参数我可以自己处理

其实规则就是可以这样理解:
找到文件名的第一个“.”(左至右)
将“.”后的的串保存到变量var
然后重命名为(参数1).var即可
麻烦你再帮我写一个,多谢!
作者: wangjunke_1981    时间: 2009-4-17 09:23     标题: 回复 3楼 的帖子

我的问题可以参考我给2楼的回复
如果找到解决办法的同时
将批处理语句帮我写上注释
特别是关于token 和 delims的
我查过些资料,没有时间去仔细推敲
你帮我把在这个问题中他们的说明意图写上就好
非常感谢
作者: Batcher    时间: 2009-4-17 12:24     标题: 回复 4楼 的帖子

请把所有要求全部更新到顶楼
作者: Batcher    时间: 2009-4-17 12:25     标题: 回复 5楼 的帖子

有现成的帖子和例子讲的很清楚,非得让人家再重复一遍?
http://bbs.bathome.net/thread-2189-1-1.html




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