批处理修改文件名问题?

hbhuo2008 2008-04-10 03:04:46
GG文件夹下有两千多个文件,文件名是
_GG200011.txt
_GG200021.txt
_GG200031.txt
.
.
.
_GG200091.txt
_GG2000101.txt
_GG2000111.txt
_GG2000121.txt
_GG200111.txt
.
.
.
_GG200511.txt
_GG200521.txt(都是以日期命名)
...

本想批量处理把文件名前的‘_’去掉,DOS下执行ren _GG200*.txt GG200*.txt 文件名全部变成GG2000xxx.txt

文件名全多了个0,现在文件名要去掉一个‘0’代码要什么写,请教大虾!
...全文
730 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
hbhuo2008 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 Forever_Young 的回复:]
另外你要把这个批处理文件放到你所说的那个GG文件夹下面运行,放别的地方不行。
[/Quote]


哈哈!问题解决了,谢谢!
ljc007 2008-04-11
  • 打赏
  • 举报
回复
刚刚在CN-DOS看到楼主的问题被另一种方法解决了
思路是用set命令进行变量替换
跟2楼的方法异曲同工^_^
Forever_Young 2008-04-10
  • 打赏
  • 举报
回复
另外你要把这个批处理文件放到你所说的那个GG文件夹下面运行,放别的地方不行。
Forever_Young 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 hbhuo2008 的回复:]
佛爱我羊


能不能讲下代码的意思,好象执行后也没变化。
[/Quote]

不会吧,执行后没变化?除非你提供的数据是虚假的,呵呵。

这个代码会依次读取dir当前目录下所有GG开头的TXT文件名,然后截取每个文件名的前三个字符和第四个字符以后的字符,然后合并,再用合并后的名字替换以前的名字。

比如:
GG20000101.txt 会被截取成 GG2 + 000101.txt
ren GG20000101.txt GG2000101.txt

这样不就每个文件名会去掉一个0么
hbhuo2008 2008-04-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 tangt 的回复:]
用ACDSee看看。
[/Quote]

具体什么操作?谢谢!
hbhuo2008 2008-04-10
  • 打赏
  • 举报
回复
佛爱我羊


能不能讲下代码的意思,好象执行后也没变化。
Forever_Young 2008-04-10
  • 打赏
  • 举报
回复
把下面的代码保存为BAT文件,放到你说的那个GG文件夹下面执行。

[code=BatchFile]
@echo off
setlocal enabledelayedexpansion
for /f "tokens=*" %%a in ('dir /a-d /b GG*.txt') do (
set na=%%a
set nb=!na:~4,12!
set na=!na:~0,3!
ren %%a !na!!nb!
)
setlocal disabledelayedexpansion
[/code]
tangt 2008-04-10
  • 打赏
  • 举报
回复
用ACDSee看看。

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧