中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-29 19:52
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 请高手修改一下批量重命名代码 查看 966 回复 13
楼 主 请高手修改一下批量重命名代码 发表于 2008-03-13 12:27 ·  中国 山东 济南 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
set a=0
setlocal EnableDelayedExpansion
for %%n in ("C:\Documents and Settings\Administrator\桌面\yu\*.BMP") do (set /A a+=1
if !a! LSS 10 (ren "%%n" "!a!.BMP") else ren "%%n" "!a!.BMP")

在C:\Documents and Settings\Administrator\桌面\yu文件夹内*.BMP文件全部重命名为数字如1、2、3……但是遇到文件数量多的,必须执行两遍才可以。请高手帮助修改一下。
2 发表于 2008-03-13 13:22 ·  中国 广西 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线

@echo off
for /f "delims=" %%n in ("C:\Documents and Settings\Administrator\桌面\yu\*.BMP") do (
for /l %%a in (1,1,9) do (
ren "%%n" "%%a.bmp" 2>nul
)
)
3 发表于 2008-03-13 13:27 ·  中国 山东 济南 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
moniuming,代码不运行!
4 发表于 2008-03-13 14:06 ·  中国 台湾 台北市 远传电信
初级用户
积分 107
发帖 42
注册 2007-09-03 16:43
18年会员
UID 96475
性别 男
状态 离线

@echo off
set desktop=C:\Documents and Settings\Administrator\桌面\yu
set a=0
for /f "tokens=*" %%a in ('dir /a/b/on %desktop%\*.bmp^|findstr -i "\.bmp"') do call :name %%a
goto end

:name
set /a a+=1
ren "%desktop%\%1" "%a%.bmp"
goto:eof

:end


这样?

[ Last edited by sylovanas on 2008-3-13 at 02:10 PM ]
5 发表于 2008-03-13 14:12 ·  中国 上海 松江区 电信
铂金会员
★★★★
DOS一根葱
积分 5,493
发帖 2,315
注册 2006-05-01 10:41
20年会员
UID 54766
性别 男
来自 上海
状态 离线
@echo off
set N=0
setlocal enabledelayedexpansion
for /f "tokens=*" %%i in ('dir /b/s/a-d "C:\Documents and Settings\Administrator\桌面\yu\*.BMP"') do (
set /a N=!N!+1
ren "%%i" "!N!"
)
pause
第一高手 第二高手

6 发表于 2008-03-13 14:13 ·  中国 广西 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线

@echo off
setlocal enabledelayedexpansion
set aa=0
for /f "delims=" %%a in ('dir /b /a-d "C:\Documents and Settings\Administrator\桌面\yu\*.BMP"') do (
set /a aa+=1
ren "%%a" !aa!.bmp
)
7 发表于 2008-03-13 14:15 ·  中国 广西 中移铁通
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
晕啊,刷新慢了,没发现已经有了新的
8 发表于 2008-03-13 14:57 ·  中国 山东 济南 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
moniuming,找不到文件,经测试只有fastslz成功了,可能忘了加上文件名的后缀了加上.BMP,
9 发表于 2008-03-14 11:56 ·  中国 北京 华为云
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
奇了怪了,为此我还多做了一个测试的代码呢,把文件名改来改去的,都没什么问题啊,这是我的原代码,我只是把红色部分换为你的罢了

@echo off
setlocal enabledelayedexpansion
set aa=0
for /f "delims=" %%a in ('dir /s /b /a-d "d:\my pictures\*.jpg"') do (
set /a aa+=1
ren "%%a" !aa!.jpg
)


这是另一个代码:
@echo off
setlocal enabledelayedexpansion
set a=1000
for /f "delims=" %%i in ('dir /b /s /a-d "d:\my pictures\*.jpg"') do (
set /a a+=1
set b=!a:~1,3!
ren "%%i" !b!.jpg
)


[ Last edited by moniuming on 2008-3-17 at 02:43 PM ]
10 发表于 2008-03-14 12:14 ·  中国 山东 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
moniuming你第一次发的代码没有加/S,现在的代码全部测试成功
11 发表于 2008-03-14 14:19 ·  中国 北京 华为云
银牌会员
★★★
永远的菜鸟
积分 1,335
发帖 574
注册 2007-11-27 12:50
18年会员
UID 103929
性别 男
来自 广西
状态 离线
没有/s也可以的,因为已经指明了路径
12 发表于 2008-03-14 14:29 ·  中国 山东 济南 联通
高级用户
★★★
积分 959
发帖 474
注册 2007-10-25 10:40
18年会员
UID 100716
性别 男
状态 离线
moniuming,这条命令我又测试了一下,还是不行,没有加/s
@echo off
setlocal enabledelayedexpansion
set aa=0
for /f "delims=" %%a in ('dir /b /a-d "C:\Documents and

Settings\Administrator\桌面\yu\*.BMP"') do (
set /a aa+=1
ren "%%a" !aa!.bmp)

[ Last edited by 5872169 on 2008-3-14 at 03:47 PM ]
13 发表于 2008-03-14 15:10 ·  中国 湖南 娄底 电信
银牌会员
★★★
积分 2,268
发帖 879
注册 2006-12-19 16:23
19年会员
UID 73968
性别 男
状态 离线
12 楼代码不能运行的原因是没有加 /s 参数,导致%%a不是完整的路径,所以会出错。
致精致简!
14 发表于 2008-03-28 18:57 ·  中国 上海 东方有线
新手上路
积分 12
发帖 6
注册 2008-03-28 17:59
18年会员
UID 114280
性别 男
状态 离线
极品啊要了,谢谢啊
论坛跳转: