本帖最后由 zm900612 于 2011-4-30 12:53 编辑
昨天漏了set str=%%b以便重新进入循环,而且没注意要将长句分段判断是否重复的要求,重写了下
batman说我代码效率很低,其实bat部分是冤枉的,我一向比较关心算法的效率,特别慢的算法好意思拿出来吗?这种小文件还不至于太卡,大文件才可能有明显的减速,主要是vbs下载用时太长...- @echo off&setlocal enabledelayedexpansion
- echo %time% 开始下载
- more>1.vbs +22 %0
- wscript //nologo 1.vbs "http://bbs.tt365.net.cn/viewthread.php?tid=161145" a.htm
- echo %time% 下载完成
- (for /f "delims=" %%a in ('findstr /rc:"【.*】" a.htm') do (
- set str=%%a【
- for /l %%b in (1 1 10) do (
- if "!str!" neq "" for /f "tokens=1* delims=】" %%c in ("!str:*【=!") do (
- if "!.%%c!"=="" (
- set tmp=%%c
- for %%e in (, 。 “ ” ; : ? !) do set tmp=!tmp:%%e=","!
- for %%e in ("!tmp!") do set .%%~e=.
- set .%%c=.
- echo %%c
- )
- set str=%%d
- )
- )
- ))>a.txt
- echo 处理完成 %time%
- pause&exit
-
- iLocal=LCase(Wscript.Arguments(1))
- iRemote=LCase(Wscript.Arguments(0))
- Set xPost=createObject("Microsoft.XMLHTTP")
- xPost.Open "GET",iRemote,0
- xPost.Send()
- set sGet=createObject("ADODB.Stream")
- sGet.Mode=3
- sGet.Type=1
- sGet.Open()
- sGet.Write xPost.ResponseBody
- sGet.SaveToFile iLocal,2
复制代码 more的行数差了两行,改下 |