中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-03 16:12
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助(改名)
可打印版本  758 / 8
第1楼 zg888 发表于 2007-03-08 12:45
初级用户 发帖 17 积分 37
求助(改名)
有这样一些文件:A001~A200
要把A001~A070改成A01~A70
A071~A150改成B01~B80
请大虾帮忙写个批处理!!!
第2楼 test266 发表于 2007-03-08 22:50
初级用户 发帖 10 积分 22
试试
@echo off
setlocal ENABLEDELAYEDEXPANSION

for /L %%i in (1,1,70) do (
set str=00%%i
set str1=!str:~-3!
set str2=!str:~-2!
echo ren A!str1! A!str2!
)

set /a num=1
for /L %%i in (71,1,150) do (
set str=00%%i
set str1=!str:~-3!
set str2=00!num!
set str2=!str2:~-2!
set /a num += 1
echo ren A!str1! B!str2!
)
第3楼 zg888 发表于 2007-03-12 06:23
初级用户 发帖 17 积分 37
test266
谢谢大吓帮忙,俺试了下,在运行时是显示的改了名字,但是,文件却还是老样子,没有改名字。是哪里的问题???
第4楼 zh159 发表于 2007-03-12 06:27
金牌会员 发帖 1,467 积分 3,687
echo ren A!str1! A!str2!
echo ren A!str1! B!str2!

to

ren A!str1! A!str2!
ren A!str1! B!str2!
第5楼 zg888 发表于 2007-03-12 06:47
初级用户 发帖 17 积分 37
可以了
去掉ECHO就可以改了,谢谢!!
第6楼 zg888 发表于 2007-03-12 06:51
初级用户 发帖 17 积分 37
能解释下吗
set str1=!str:~-3!
set str2=00!num!
set str2=!str2:~-2!
set /a num += 1
能说说=号后是什么意思吗??
第7楼 test266 发表于 2007-03-12 07:02
初级用户 发帖 10 积分 22
set str1=!str:~-3! 取str字符串的最后3个字符
set str2=00!num! 在数字前加两个0,也就是1变成001,99变成0099
set str2=!str2:~-2! 然后再取最后两个字符,则001变成01,0099变成99
第8楼 zg888 发表于 2007-03-12 07:24
初级用户 发帖 17 积分 37
谢谢
如果文件是带扩展名的,是不是把
set str1=!str:~-3! 改成 set str1=!str:~-6!就可以呢?
第9楼 test266 发表于 2007-03-12 08:03
初级用户 发帖 10 积分 22
直接加在这行上,以.txt为例
ren A!str1!.txt A!str2!.txt
ren A!str1!.txt B!str2!.txt
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023