中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-07 16:34
48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行
DOS批处理 & 脚本技术(批处理室) » 求助:长文件名显示不正常(高手级的)
可打印版本  1,081 / 4
第1楼 jiulong 发表于 2008-03-05 14:38
中级用户 发帖 183 积分 396
求助:长文件名显示不正常(高手级的)
@echo off
set ietmp=%userprofile%\Local Settings\Temporary Internet Files
for /f "tokens=1" %%i in ('dir /ad /s "%ietmp%\*"') do echo %%i
pause

上面是错误的,不能正常显示


用下面的就正确了
for /f "tokens=*" %%i in ('dir /ad /b /s "%userprofile%\Local Settings\Temporary Internet Files\*"') do rd /s/q "%%i"
del /f /s /q "%userprofile%\Local Settings\Temp\*.*"

这条命令有缺陷:如果别人的IE临时目录不在这里呢?而且你又不知道呢?


要实现的目的是:
1、不知道IE临时文件夹所在位置(因为要做个通用的清理垃圾工具),所以不能用SET来变量
2、不能用rd /s/q "path:\Temporary Internet Files"&md "path:\Temporary Internet Files"命令,因这条命令会造成至命错误。我是试过的,不知别人有没有
我这种至命问题

补充:如果用以下命令来设置变量也可以:
@reg add "HKCU\Environment" /v ietmp /t reg_expand_sz /d "%USERPROFILE%\Local Settings\Temporary Internet Files" /f
@reg add "HKLM\SYSTEM\ControlSet001\Control\Session Manager\Environment" /v ietmp /t reg_expand_sz /d "%USERPROFILE%\Local Settings\Temporary Internet Files" /f

然后我可以用这样的命令做:rd /s/q %ietmp%&md %ietmp%

注意:在不知道别人做系统习惯的情况下,又不知他的IE临时目录所在位置
并且他转过又不想换其它位置的情况下要做到通用就有点难了。

[ Last edited by jiulong on 2008-3-5 at 02:47 PM ]
第2楼 vkill 发表于 2008-03-05 14:48
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
不管转移到那,读取reg都可以找到的
第3楼 fastslz 发表于 2008-03-05 18:43
铂金会员 发帖 2,315 积分 5,493 来自 上海
第1个 "tokens=1"能正常显示才叫怪了
看下面的通用吗
第4楼 chishingchan 发表于 2008-03-06 14:28
银牌会员 发帖 538 积分 1,284
结合自己及几位高手帮助后所做成的成品(仅供参考)
第5楼 jiulong 发表于 2008-03-07 08:49
中级用户 发帖 183 积分 396
楼上的代码好恐怖呀
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023