中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-07 13:37
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助]批处理批量重命名同一目录下的"*.txt"文件 查看 3,965 回复 17
16 发表于 2008-02-13 00:43 ·  中国 福建 福州 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
哦,这个呀。是用来打印用的。

打印机识别三个及以上“-”连接符,而后面的数字就是要打针的份数。
如:a---3.txt,就是把这个文件打印3份。

有人说:“何必这么麻烦,直接点打印三份就好了。”
是阿,如果一个还好说,多了就不行了,所以只好先处理文档,然后拖到相应的文件夹中,如要打三份就放入打三份的文件夹中(而且有的文档今天可能是打两份,明天就可能是打四份了,改来改去很是麻烦的)。要是一个一个改名不是累死了,所以来求助,但所得答案不甚满意,自己来编,边学边改进。昨天终于编了个还行的,呵呵。

看你在论坛也很勤快,交个朋友罢,我已经加你了^_^
17 发表于 2008-02-13 12:49 ·  中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404
发帖 946
注册 2005-09-08 13:44
20年会员
UID 42345
状态 离线
第二个FOR不要DIR了
@echo off
for /f "tokens=*" %%i in ('dir /b /a-d *.txt') do call :lp "%%~ni"
pause
goto :eof
:lp
set n=
setlocal EnableDelayedExpansion
for /f "tokens=1* delims=-" %%i in ("%~1") do (
set fils=%%i
set fils1=!fils!---3.txt
if "%~1.txt" == "!fils1!" goto :eof
if exist "!fils1!" (
:rn
set /a n+=1
set fils1=!fils!!n!---3.txt
if exist "!fils1!" goto rn
)
)
ren "%~1.txt" "!fils1!"

[ Last edited by terse on 2008-2-13 at 12:54 PM ]
简单!简单!再简单!
18 发表于 2008-02-14 00:52 ·  中国 福建 福州 电信
中级用户
★★
积分 458
发帖 211
注册 2006-07-26 19:42
20年会员
UID 59307
状态 离线
厉害,比我的简单多了。谢谢了。

欣赏你的签名,看来我也要写个签名了。
论坛跳转: