Board logo

标题: 求助(改名) [打印本页]

作者: zg888     时间: 2007-3-8 12:45    标题: 求助(改名)

有这样一些文件:A001~A200
要把A001~A070改成A01~A70
      A071~A150改成B01~B80
请大虾帮忙写个批处理!!!
作者: test266     时间: 2007-3-8 22:50    标题: 试试

@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!
)
作者: zg888     时间: 2007-3-12 06:23    标题: test266

谢谢大吓帮忙,俺试了下,在运行时是显示的改了名字,但是,文件却还是老样子,没有改名字。是哪里的问题???
作者: zh159     时间: 2007-3-12 06:27
echo ren A!str1! A!str2!
echo ren A!str1! B!str2!

to

ren A!str1! A!str2!
ren A!str1! B!str2!
作者: zg888     时间: 2007-3-12 06:47    标题: 可以了

去掉ECHO就可以改了,谢谢!!
作者: zg888     时间: 2007-3-12 06:51    标题: 能解释下吗

set str1=!str:~-3!
set str2=00!num!
set str2=!str2:~-2!
set /a num += 1
能说说=号后是什么意思吗??
作者: test266     时间: 2007-3-12 07:02
set str1=!str:~-3!  取str字符串的最后3个字符
set str2=00!num!  在数字前加两个0,也就是1变成001,99变成0099
set str2=!str2:~-2! 然后再取最后两个字符,则001变成01,0099变成99
作者: zg888     时间: 2007-3-12 07:24    标题: 谢谢

如果文件是带扩展名的,是不是把
set str1=!str:~-3! 改成 set str1=!str:~-6!就可以呢?
作者: test266     时间: 2007-3-12 08:03
直接加在这行上,以.txt为例
ren A!str1!.txt A!str2!.txt
ren A!str1!.txt B!str2!.txt