[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
那ie算不算第三方呢...

TOP

10# Batcher


啊!太口怕了,版主竟然吃人...

TOP

本帖最后由 zm900612 于 2011-4-29 22:24 编辑

这个vbs部分是照搬别人的...
  1. @echo off&setlocal enabledelayedexpansion
  2. more>1.vbs +16 %0
  3. wscript //nologo 1.vbs "http://bbs.tt365.net.cn/viewthread.php?tid=161145" 1.htm
  4. (for /f "delims=" %%a in ('findstr /rc:"【.*】" 1.htm') do (
  5. set str=%%a【
  6. for /l %%b in (1 1 100) do (
  7. if "!str!" neq " " for /f "tokens=1* delims=】" %%c in ("!str:*【=!") do (
  8. if not defined .%%c (
  9. set .%%c=.
  10. echo %%c
  11. )
  12. )
  13. )
  14. ))>3.txt
  15. pause&exit
  16. iLocal=LCase(Wscript.Arguments(1))
  17. iRemote=LCase(Wscript.Arguments(0))
  18. Set xPost=createObject("Microsoft.XMLHTTP")
  19. xPost.Open "GET",iRemote,0
  20. xPost.Send()
  21. set sGet=createObject("ADODB.Stream")
  22. sGet.Mode=3
  23. sGet.Type=1
  24. sGet.Open()
  25. sGet.Write xPost.ResponseBody
  26. sGet.SaveToFile iLocal,2
复制代码

TOP

23# batman


效率低的是vbs部分,那部分我没有一点办法,bat部分可以通过调整for /l循环数来控制用时。至于漏行,我去调试一下吧...

TOP

本帖最后由 zm900612 于 2011-4-30 12:53 编辑

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

评分人数

    • batman: 小学还要进修下PB + 20

TOP

29# batman


汗,加了那三条echo,忘了改more相应的参数

TOP

循环1000次也没什么影响的,因为for的输入为空,循环数就只是微调

TOP

“将【替换为 "# ,将】替换为" ,直接达到分句效果”,这个倒是好办法,没想到

TOP

返回列表