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

[文件操作] 【已解决】求一个循环改名批处理

javascript:;

cs13010201pm-1[1].tsd
如图的文件名, 前面的14个字符 “csd13010201pm” 会随着文件夹的不同而改变,但是每个文件夹里的一样
后面的‘1’ 会递增到3位数,“[1].ts”保持不变

想批处理改名完毕后更改成
cs13010201pm-001[1].tsd
cs13010201pm-012[1].tsd
cs13010201pm-134[1].tsd

会递增加的数是1位时,前面加2个0, 到2位数时加1个0,

加完毕后  运行   copy /b  *.ts   1.ts.

如果1.ts文件的名字能在运行的时候在窗口输入字符串后在执行就最牛了.

感觉自己打完上面的需求就崩溃了,有大神能帮忙吗,先给大爷跪谢一个
请不要问我为什么图像是妹子

回复 1# 332971606


输入自己的路径,echo输出的就是合格的新名字(改为改名即可)^_^:
  1. @echo off & setlocal enabledelayedexpansion
  2. set "p=D:\tmp"
  3. for /f "tokens=1,2,*delims=-[" %%i in ('dir /b %p%') do (
  4. set a=000%%j
  5. echo;%%i-!a:~-3![%%k
  6. )
  7. pause & exit /b
复制代码
确实,这样改名就行,我还在你上一个帖子想着字母替换呢
不过这样会快不?好了反馈一下哈

TOP

回复 2# 回家路上


    找不到指定的文件名,我把代码里的tmp替换成我D盘后面的路径也是没有效果,

    可以直接把bat拖到那个目录直接运行吗,
  
    我按照现在的图里面的原版格式用 copy /b *.ts 1.ts  200个文件也就3到4秒,
    唯一我问题是,默认是字母排序,   1的后面会接 100,101,102然后才是2,201,202
   
   就是这个地方烦,

  所以想把那个数组前面补0到3位,这样按首字母应该就不会有错误,想法是这样,写不出来
请不要问我为什么图像是妹子

TOP

理解能力比较差,表示不知道楼主的意思

TOP

回复 3# 332971606


好吧,我以为看到那个你就会了。
  1. @echo off & setlocal enabledelayedexpansion
  2. for /f "tokens=1,2,*delims=-[" %%i in ('dir /b *.tsd') do (
  3.         set a=000%%j
  4.         ren "%%i-%%j[%%k" "%%i-!a:~-3![%%k"
  5. )
  6. pause & exit /b
复制代码
批处理放目录下,执行

TOP

回复 5# 回家路上


    谢谢大神,膜拜中,请收下我的膝盖
    全部改名完毕,真谢谢,
     for循环里的东西现在还看不明白,和代码里的for差的有点多,整的有点迷糊,
请不要问我为什么图像是妹子

TOP

返回列表