![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 07:10 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]批量更改文件名 |
| 可打印版本 2,071 / 17 |
| 第1楼 hackxw | 发表于 2008-12-23 21:47 |
| 初级用户 发帖 28 积分 28 来自 山东省淄博市 | |
|
[已结]批量更改文件名 根目录:“%userprofile%\桌面\aaa\”下全是名字乱七八糟的html文件,我想这文件夹里所有的这种文件改成有规则的文件名,扩展名不变。如:
1.html 2.html 3.html ... 代码该怎么写啊...请求大虾~~~ [ Last edited by HAT on 2008-12-28 at 22:48 ] |
|
| 第2楼 dddyjq1 | 发表于 2008-12-23 23:47 |
| 初级用户 发帖 108 积分 175 | |
|
@echo off
for /f "delims=" %%i in ('dir /b *.html^|findstr /i "^[1-9].*"') do ( for /f "usebackq delims=(" %%a in ("%%i") do ren "%%i" "%%a%%~xi" ) pause 抄来不知对否 |
|
| 第3楼 tireless | 发表于 2008-12-24 00:25 |
| 银牌会员 发帖 1,122 积分 2,025 | |
| 第4楼 wewe | 发表于 2008-12-24 01:14 |
| 新手上路 发帖 5 积分 7 | |
|
不知为什么,我复制最后一句 !n!.html 老是被识别为常量,而不是变量。
|
|
| 第5楼 lixiaodaoaaa | 发表于 2008-12-24 01:58 |
| 新手上路 发帖 5 积分 9 | |
|
回个话 20可以随便该个数字,可以实现目的 没事,报错是因为文件夹的数字不对 |
|
| 第6楼 hackxw | 发表于 2008-12-24 21:24 |
| 初级用户 发帖 28 积分 28 来自 山东省淄博市 | |
|
三楼的可以用,但是文件名不规则。楼上的也可以用,但是得文件需要再aaa目录下。
谁可以再提供以下~~~ |
|
| 第7楼 HAT | 发表于 2008-12-24 21:36 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 6楼 你在顶楼的问题描述不就是说的aaa目录下么?你到底想怎样?
|
|
| 第8楼 wewe | 发表于 2008-12-25 00:41 |
| 新手上路 发帖 5 积分 7 | |
|
请教:
我试验了下例子 for %%a in ("%userprofile%\桌面\*.html") do ( set /a n+=1 ren "%%a" !n!.html ) 结果命名为 !n!.html 而不是 1.html。看来是把 !n! 识别成常量了。试了几次都是这样,请问这是什么原因呢? |
|
| 第9楼 hqso | 发表于 2008-12-25 13:51 |
| 初级用户 发帖 39 积分 43 | |
|
呵呵 那是因为 同一过程中刚赋予变量的值不能立刻用于同一过程中的其他的地方
建议把那个!n! 的值 echo 到某个文件中,在通过for语句 读出 那个文件中字符 |
|
| 第10楼 hackxw | 发表于 2008-12-27 20:56 |
| 初级用户 发帖 28 积分 28 来自 山东省淄博市 | |
|
回七楼版主,我想要的是当前批处理再任意目录下就可以批量更名桌面下的aaa文件夹下的所有的html文件,而不是当前批处理必须放在aaa目录下才能用。。。五楼那个是必须把当前批处理放在aaa目录下才能使用的。。。
[ Last edited by hackxw on 2008-12-27 at 20:59 ] |
|
| 第11楼 tireless | 发表于 2008-12-27 22:13 |
| 银牌会员 发帖 1,122 积分 2,025 | |
|
试试这个: |
|
| 第12楼 HAT | 发表于 2008-12-28 00:22 |
| 版主 发帖 5,017 积分 9,023 | |
|
Re 10楼 I 真实服了 You!
有啥问题不能更新到顶楼么?如果再来个其它人想帮你解决问题,还得一层一层楼的往下看,看到10楼才能知道你要干啥。这不是浪费时间么? |
|
| 第13楼 523066680 | 发表于 2008-12-28 15:04 |
| 银牌会员 发帖 1,133 积分 2,362 | |
|
小黑把版主招来了.....
在网吧草草的看了题目,不知道自己的老作品可不可以. 有选项的 |
|
| 第14楼 hackxw | 发表于 2008-12-28 21:23 |
| 初级用户 发帖 28 积分 28 来自 山东省淄博市 | |
|
re 11 and 13 太好了,结合11楼和13楼的终于弄好了!!!严重感谢你们!!!
%t%是扩展名。。。 特别是十一楼的cd /d %userprofile%\桌面\%t%这个命令,我怎么没想到呢~~ 这个命令结合五楼的也是可以的。。。 终于解决了,再次感谢你们。。。!!! cd /d %userprofile%\桌面\%t% setlocal enabledelayedexpansion set /a k=0 for /f "tokens=*" %%a in ('dir "*.%t%" /b') do ( set /a k+=1 ren "%%a" "!k!.%t%" ) Thank you very much!!!!!!!!!!!!!! |
|
| 第15楼 hackxw | 发表于 2008-12-31 22:40 |
| 初级用户 发帖 28 积分 28 来自 山东省淄博市 | |
|
^_^
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |