中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-11 04:30
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » [已结]红叶清除垃圾文件的批处理有点不懂请指点
可打印版本  894 / 3
第1楼 wanxibing 发表于 2009-01-08 01:05
新手上路 发帖 7 积分 11
[已结]红叶清除垃圾文件的批处理有点不懂请指点
深山红叶清除垃圾文件的批处理中for 的变量,有点不懂
经我测试,深山红叶的清除垃圾文件的批处理的确是很智能,我在网上看到别的清除垃圾文件的批处理,都是系统默认的位置,殊不知,我等系统玩家,改变了系统的默认设置,以至有的人做的批处理不适合了,而深山红叶确能做到智能查找,所以我发给大家,以供学习研究吧,不过我对FOR中的%%b如下句有点不解


以上的%%b好像没有事先声明呀!请高手指点下
深山红叶清除垃圾文件的批处理全文如下:


以上是deltem.bat 愿结交天下所有电脑爱好者及批处理高手大侠
我的联系如下 QQ:657991840 wanxibing@163.com 13242905978

[ Last edited by HAT on 2009-1-8 at 11:24 ]
第2楼 dikex 发表于 2009-01-08 01:11
高级用户 发帖 366 积分 788
for 帮助的一部分

tokens=x,y,m-n - 指每行的哪一个符号被传递到每个迭代
的 for 本身。这会导致额外变量名称的分配。m-n
格式为一个范围。通过 nth 符号指定 mth。如果
符号字符串中的最后一个字符星号
那么额外的变量将在最后一个符号解析之后
分配并接受行的保留文本。
第3楼 wanxibing 发表于 2009-01-08 01:38
新手上路 发帖 7 积分 11
非常谢谢dikex 热心帮忙回复
经过你的回复,我现在懂了,明白了,你在万忙之中,回复我,可喜可贺!
祝你新春快乐!
第4楼 tempuser 发表于 2009-01-08 10:11
高级用户 发帖 261 积分 547
我一直以为tokens是按列取值,但现在有点绕,以下上cleantmp.txt内容:

! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Cache REG_SZ C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files


! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Cookies REG_SZ C:\Documents and Settings\Administrator\Cookies


! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
History REG_SZ C:\Documents and Settings\Administrator\Local Settings\History


! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
NetHood REG_SZ C:\Documents and Settings\Administrator\NetHood


! REG.EXE VERSION 3.0

HKEY_CURRENT_USER\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
Recent REG_SZ C:\Documents and Settings\Administrator\Recent

那么我用:for /f "tokens=3*" %%a in (%temp%\cleantmp.txt) do echo %%a %%b >>test.txt

结果如下:
VERSION 3.0
C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files
VERSION 3.0
C:\Documents and Settings\Administrator\Cookies
VERSION 3.0
C:\Documents and Settings\Administrator\Local Settings\History
VERSION 3.0
C:\Documents and Settings\Administrator\NetHood
VERSION 3.0
C:\Documents and Settings\Administrator\Recent

这个时候按列取值我就取不明白了!能给具体解释吗?%%b的值如果是类似以上的C:\Documents and Settings\Administrator\Local Settings\Temporary ,那么
for /d %%i in ("%%a %%b\*.*") do rd /s /q "%%i">nul 2>nul
del /a /f /s /q "%%a %%b\*.*">nul 2>nul
中的%%a就可以省略吧!这样看得就清楚些,对吗?
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023