![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 19:02 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » FOR 这样优化为什么不行? |
| 可打印版本 834 / 10 |
| 第1楼 313885174 | 发表于 2008-03-14 14:38 |
| 中级用户 发帖 100 积分 206 | |
|
FOR 这样优化为什么不行? for /r c:\ %%i in (123456.txt) do del "%%i"
for /r d:\ %%i in (123456.txt) do del "%%i" for /r e:\ %%i in (123456.txt) do del "%%i" for /r f:\ %%i in (123456.txt) do del "%%i" for /r g:\ %%i in (123456.txt) do del "%%i" 把上面的写成 for %%i in (c,d,e,f,g) do for /r %%u in (123456.txt) do del %%i:\"%%u" 这样的话P处理文件所在目录下对C D E F G查找 但后面的路径还是文件所在的原目录? |
|
| 第2楼 pooronce | 发表于 2008-03-14 16:27 |
| 中级用户 发帖 250 积分 484 | |
|
你命令理解有误
路径是放在变量前面的,所以正确写法应该是这样: 有没有更好看方法,就看楼下的朋友了xD |
|
| 第3楼 ngd | 发表于 2008-03-14 17:21 |
| 中级用户 发帖 108 积分 312 | |
|
for /r 都可以用 for /f 代替
[ Last edited by ngd on 2008-3-14 at 05:34 PM ] |
|
| 第4楼 313885174 | 发表于 2008-03-14 18:49 |
| 中级用户 发帖 100 积分 206 | |
|
2楼给的代码删不干净
3楼的测试可行 可以解释下这个是什么吗? "delims=" [ Last edited by 313885174 on 2008-3-14 at 06:56 PM ] |
|
| 第5楼 ngd | 发表于 2008-03-14 23:38 |
| 中级用户 发帖 108 积分 312 | |
|
for /f 语句中,默认以空格或者制表符(也就是按tab键产生的8个空格的字符)为分隔符
"delims=" 的含义是取消默认的分隔符 如果你去掉了delims选项,那么当文件含有空格等符号时,程序可能达不到你要的效果,甚至会出错。 |
|
| 第6楼 suntb | 发表于 2008-03-14 23:49 |
| 高级用户 发帖 277 积分 581 | |
|
@echo off
for %%i in (c d e f g) do (if exist %%i:\123456.txt del /f /q %%i:\123456.txt) |
|
| 第7楼 chenall | 发表于 2008-03-15 00:47 |
| 银牌会员 发帖 469 积分 1,276 来自 福建泉州 | |
|
好像楼主要实现的功能不用这么麻烦吧,
用以下的就可以实现了,效率更高。
|
|
| 第8楼 313885174 | 发表于 2008-03-15 03:03 |
| 中级用户 发帖 100 积分 206 | |
Originally posted by suntb at 2008-3-14 11:49 PM: 没有用啊以前试过了要是不在前面加if exist %%i:\123456.txt最多每个分区下会删除掉文件然而子文件夹下还是存在的`` ....................................................... [ Last edited by 313885174 on 2008-12-27 at 21:02 ] |
|
| 第9楼 313885174 | 发表于 2008-03-15 03:13 |
| 中级用户 发帖 100 积分 206 | |
Originally posted by chenall at 2008-3-15 12:47 AM: 你的代码只能删除分区下的文件子目录好象删除不了把... |
|
| 第10楼 ngd | 发表于 2008-03-15 12:42 |
| 中级用户 发帖 108 积分 312 | |
Originally posted by 313885174 at 2008-3-15 03:13: 七楼的代码的确高效 因为 del 加了 /s 参数 ----从当前目录及其所有子目录中删除指定文件。显示正在被删除的文件名。 我的代码更适合提取文件而非删除文件 LZ测试过了? |
|
| 第11楼 suntb | 发表于 2008-03-15 23:12 |
| 高级用户 发帖 277 积分 581 | |
|
学习了 忘了dir还有/s开关
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |