中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [讨论]批处理规律字符处理 上一主题 | 下一主题
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『楼 主』:  [讨论]批处理规律字符处理

怎样用批处理对下面的的文件名实现两个任务:
1:
去掉前面的"GAME"
2
把1改成01,2改成02......
3
按照1,2,3的数字大小的顺序重新命名为A,B,C.......
比如: GAME1.MID 改为GAMEA.MID.......

以下是文件夹中的文件:
GAME1.MID
GAME10.MID
GAME11.MID
GAME12.MID
GAME13.MID
GAME14.MID
GAME15.MID
GAME16.MID
GAME17.MID
GAME18.MID
GAME19.MID
GAME2.MID
GAME20.MID
GAME21.MID
GAME22.MID
GAME23.MID
GAME24.MID
GAME3.MID
GAME4.MID
GAME5.MID
GAME6.MID
GAME7.MID
GAME8.MID
GAME9.MID

[ Last edited by GOTOmsdos on 2007-3-2 at 03:51 PM ]

2007-3-2 06:55
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tao0610
高级用户

朦胧的世界


积分 579
发帖 218
注册 2006-10-24
状态 离线
『第 2 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f %%a in ('dir/b *.MID') do (
                                   set tmp=%%~na
                                   set tmp=!tmp:GAME=!
                                   if !tmp! lss 10 set tmp=0!tmp!
                                   ren %%~a !tmp!%%~xa
                                  )
3
按照1,2,3的数字大小的顺序重新命名为A,B,C.......???
不太懂..




认识自己,降伏自己,改变自己
,才能改变别人!
2007-3-2 07:32
查看资料  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 3 楼』:  

  这三个任务应该是分次完成的吧?如果是一次性完成的话,第2个任务就没必要了。

  另,这是某个文件夹下的所有文件还是某个文本中的记录?



尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2007-3-2 09:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
zh159
金牌会员




积分 3687
发帖 1467
注册 2005-8-8
状态 离线
『第 4 楼』:  


@echo off&setlocal enabledelayedexpansion
for /f %%a in ('dir/b *.MID') do (
  set str=%%~na
  set str=!str:GAME=!
  call :A-Z
  ren %%~a !str!%%~xa
)
exit

:A-Z
set N=0
for /f %%n (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  set /a N+=1
  if "!str!" == "!N!" set str=%%n&goto :eof
)
goto :eof


2007-3-2 10:58
查看资料  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 5 楼』:  


set a=xabcdefghi
for /f "delims=GAME." %%i in ('dir /b game*.mid') do (
set /a b=%%i%%10,c=%%i/10
call :rrr %%i %%b%% %%c%%)
goto :eof
:rrr
call echo ren game%1.mid game%3%%a:~%2,1%%.mid
goto :eof
发现一个好玩的

ren game*.mid "    *.mid"

2007-3-3 06:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: