请批处理高手给予解决

来源:百度知道 编辑:UC知道 时间:2024/06/30 09:34:31
我编写了个批处理,能自动访问相关网页,我的要求是每个访问之间停留相应的时间,每访问20个清空COOKIES,缓存记录等,但我的程序在运行中出现一个问题,就是在访问第20个网页后执行清理,然后显示是访问第21个,但实际指向的仍然是第20个网页,从21个起后面又好了,到40个时又出现这个问题.请教高手,我改如何修改啊?谢谢了,程序如下:
@echo off
echo.
set /a count=158
echo.
pause
Set /p T=请依据你电脑的配置以及网络速度输入你的访问间隔并按回车(单位:秒):
If /I "%T%"=="n" Exit
echo.
set num=0
for /F "eol=: skip=57 tokens=1 delims=" %%i in (智客互访.bat) do call :start %%i
:a
Set /p num=还要访问?请输入你想要访问的办公室的数字ID后回车:
If /I "%num%"=="n" echo 感谢你的访问!……& pause &exit
start http://www.zhike.com/index.php/blog/%num%
cls
echo.
Goto a
pause
exit
:bin
echo 开始执行清理……
echo.
echo 正在检查cookies、历史纪录等目录位置(当前用户)……
reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache>%

你的批处理我没有仔细看,只是针对你的问题了解了一下

第一个问题:仔细看看你的goto语句就知道了,你在goto bin后,在bin中又goto :start,这样没有回到for语句中,%%i自然没有改变了。建议你把bin标签取消,将"if %num2%==0 echo. &goto :bin" 语句改成(注意,if后括号下面的括号,会影响命令执行,我不想一个一个找,都取消了。如果想保留,括号前加^):

if %num2%==0 (
echo.
echo 开始执行清理……
echo.
echo 正在检查cookies、历史纪录等目录位置
reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cache>%temp%\cleantmp.txt
reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v Cookies>>%temp%\cleantmp.txt
reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v History>>%temp%\cleantmp.txt
reg query "HKCU\software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" /v NetHood>>%temp%\cleantmp.txt
reg query "