中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-03 15:09
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [讨论]批处理规律字符处理 查看 964 回复 4
楼 主 [讨论]批处理规律字符处理 发表于 2007-03-02 06:55 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
23年会员
UID 7105
性别 男
状态 离线
怎样用批处理对下面的的文件名实现两个任务:
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 ]
2 发表于 2007-03-02 07:32 ·  中国 北京 朝阳区 联通
高级用户
★★
朦胧的世界
积分 579
发帖 218
注册 2006-10-24 04:29
19年会员
UID 67972
状态 离线


@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.......???
不太懂..

认识自己,降伏自己,改变自己
,才能改变别人!
3 发表于 2007-03-02 09:03 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  这三个任务应该是分次完成的吧?如果是一次性完成的话,第2个任务就没必要了。

  另,这是某个文件夹下的所有文件还是某个文本中的记录?
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
4 发表于 2007-03-02 10:58 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
@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
5 发表于 2007-03-03 06:00 ·  中国 广东 广州 天河区 电信
金牌会员
★★★★
一叶枝头,万树皆春
积分 2,564
发帖 1,127
注册 2006-12-25 22:57
19年会员
UID 74552
性别 男
状态 离线

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"
论坛跳转: