中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 12:54
48,040 主题排行 / 350,125 发帖 / 今日 0 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » [求助]批处理批量重命名同一目录下的"*.txt"文件
可打印版本  3,961 / 17
第16楼 wxcute 发表于 2008-02-13 00:43
中级用户 发帖 211 积分 458
哦,这个呀。是用来打印用的。

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

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

看你在论坛也很勤快,交个朋友罢,我已经加你了^_^
第17楼 terse 发表于 2008-02-13 12:49
银牌会员 发帖 946 积分 2,404
第二个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楼 wxcute 发表于 2008-02-14 00:52
中级用户 发帖 211 积分 458
厉害,比我的简单多了。谢谢了。

欣赏你的签名,看来我也要写个签名了。
上一页  1 2
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023