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

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

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

  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
复制代码


这样行不?

TOP

  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去掉

TOP

回复 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即可
麻烦你再帮我写一个,多谢!

TOP

回复 3楼 的帖子

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

TOP

回复 4楼 的帖子

请把所有要求全部更新到顶楼
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 5楼 的帖子

有现成的帖子和例子讲的很清楚,非得让人家再重复一遍?
http://bbs.bathome.net/thread-2189-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表