• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

请教大家一个在命令行下批量重命名文件的方法,谢谢!

WandyGao 2007-03-12 01:47:29
有一堆文件命名如下:
20070201.024
20070202.024
20070203.024
20070204.024
……
想使用批处理命令将其改名为
rr0201.024
rr0202.024
rr0203.024
rr0204.024
……
请问大家这个批处理该怎么写呢?谢谢大家!
...全文
1321 点赞 收藏 22
写回复
22 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
heguo 2007-03-13
sorry,以上回复错误.
回复
heguo 2007-03-13
ren ????02??.024 rr02*.024
winxp下通过测试
回复
老汉 2007-03-13
汗楼上,能直接用BAT处理的问题,再搞个WINFORM去解决还更简单?

DOS命令行是每个机子上都有的,.net fw每个机子上都有么?
回复
junoon 2007-03-13
最简单是写bat脚本。。
回复
chaney 2007-03-13
写个Winform更简单些吧,定时器、正则、替换、文件类。
回复
ylhyh 2007-03-13
mark
回复
王集鹄 2007-03-12
我测试过可以啊

for %%i in (*.024) do call :goren %%i
goto end
:goren
set firstln=%1
set month=%firstln:~4,2%
set day=%firstln:~6,2%
ren %1 rr%month%%day%.024
goto end
:end
回复
苏陌Bubble 2007-03-12
for /l %%i in (101,1,931) do ren %year%0%%i.024 rr0%%i.024
上面这句是处理月份小于10的,前面加一个0

下面这句是处理10月以后的直接接在年后面.
for /l %%j in (1001,1,1231) do ren %year%%%j.024 rr%%j.024
回复
苏陌Bubble 2007-03-12
呵呵,算了.俺送佛送到西吧.
唯一的问题是处理时会有一些错误,因为我重命名了
20070101......20070199....20071199....等可能不存在的文件,不过为了怕麻烦了.呵呵,
如果不怕麻烦的话,也可以写得更精准点..

刚才小试了一把:
test.bat:

set year=2007

for /l %%i in (101,1,931) do ren %year%0%%i.024 rr0%%i.024
for /l %%j in (1001,1,1231) do ren %year%%%j.024 rr%%j.024

回复
WandyGao 2007-03-12
大家能帮我找一下原因吗?俺是黔驴技穷了啊……
回复
WandyGao 2007-03-12
我写出来一个批处理文件,但是不能正确执行,大家帮忙看一下好不好有空?批处理如下:

for %%i in (*.024) do call :goren %%i
goto end

:goren
set /p firstln=%1
set month=%firstln:~4,2%
set day=%firstln:~6,2%
ren %1 rr%month%%day%.024
goto end

:end

执行的结果会把month的值赋成lf,day的值赋成jk,每一个文件在处理的时候都是这样子,大家能找到原因吗?
回复
苏陌Bubble 2007-03-12
正在上班,太忙,没时间测试了,
你参照一下这个吧:
用批处理实现文本文件中指定字符串的替换:
http://phpsky.info/article_1273.html
这是替换文件中的字符串的,换文件名应该更简单些.
呵呵
回复
WandyGao 2007-03-12
还有人知道怎么写吗?
回复
WandyGao 2007-03-12
知道该怎么写吗topken?我还没有弄出来……
回复
苏陌Bubble 2007-03-12
如果非要这样,可以用管道命令,前面的Dos命令取文件,然后把文件名作为参数通过管道传过去,再改名.
不过太麻烦了,弄不好还出错..呵呵..
回复
WandyGao 2007-03-12
呵呵,topken的办法总觉得也不是一个很好的办法,我正在看DOS下的批处理命令,似乎可以解决,大家知道这个命令该怎么写吗?
回复
苏陌Bubble 2007-03-12
哈哈,没说明呀.那更简单
可以看出你的文件名有规律,那还不简单.
一个bat就搞定了:
建一个test.bat把每天的文件名都搞上:
rename 20070101.024 rr0101.024
rename 20070102.024 rr0102.024
...
rename 20070201.024 rr0201.024
...无限多
rename 20070201.024 rr1231.024
...
然后每天都执行这个东西,明白了吧.如果不存在文件名虽然会报错,但并不影响后面的执行.
而且也不会重复执行,改过的下次就不会再改了...每天都调用test.bat就行了...
回复
WandyGao 2007-03-12
这个是要做一个dos下的批处理放在任务计划里面自动运行的啊楼上的各位……
回复
苏陌Bubble 2007-03-12
存成后缀名 test.bat,然后就在命令行下 test.bat
就OK了,很方便.如果编程的话也行.不过有点远了
回复
苏陌Bubble 2007-03-12
在你的目录下:
dir > test.txt
把所有的文件名输出到一个文本文件中.
然后用编辑器(UltraEdit最好),按列模式编辑一下
每个文件名都换成:
rename 20070201.024 rr0201.024
rename 20070202.024 rr0202.024
....

如果没有UltraEdit用Excel也行.分成三列.也很方便.
回复
加载更多回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2007-03-12 01:47
社区公告

让您成为最强悍的C#开发者