![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 05:47 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]批量修改文件名出错 |
| 可打印版本 993 / 2 |
| 第1楼 qinbuer | 发表于 2007-06-30 00:36 |
| 高级用户 发帖 228 积分 512 | |
|
[求助]批量修改文件名出错 假设有某文件夹,里面有各种类型的文件,有一部分是以数字命名的,如12.gif,现在想将它们的文件名从1开始累加,效果如:0.gif、1.bmp、 2.jpg,以下是在下写的一个批处理:
SETLOCAL ENABLEDELAYEDEXPANSION set num=0 for /f %%i in ('dir /a /b') do ( set fix=%%~xi ::判断后缀名 if exist !num!!fix! (call:cho "%%i") else ren "%%i" !num!!fix! ::判断是否有相同的文件名 set /a num+=1 ) pause>nul goto :eof ::这里的goto :eof是不是可以用exit来代替? :cho if exist !num!!fix! (set /a num+=1 & goto cho) else ren %1 !num!!fix! goto :eof 问题: 1、它为什么不会判断有空格的文件?我明明加了""了的 2、除了不会判断空格,它还有什么漏洞,在下实在是测试不出来,麻烦各位帮忙指正。 |
|
| 第2楼 slore | 发表于 2007-06-30 08:28 |
| 铂金会员 发帖 2,478 积分 5,212 | |
|
for /f "delims=" %%i in ('dir /a /b') do (
不写的话默认是按空格分割…… |
|
| 第3楼 qinbuer | 发表于 2007-06-30 12:03 |
| 高级用户 发帖 228 积分 512 | |
|
血的教训啊,以前就曾碰到同样的问题,偏偏又忘记了。
谢谢slore兄! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |