找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
楼主: batman

批处理提取网页中《西游记》原文

[复制链接]
发表于 2011-4-30 12:46:01 | 显示全部楼层
固定循环10次=。=
我觉得用我的将【替换为 "# ,将】替换为" ,直接达到分句效果会更好一点,for循环可以直接取出有用的句子。

去除重复,因为整个文章不长,一个变量可以放的下,就再可以用ZM那种按标点符号分句,然后匹配每个小句是否重复。

如果是不确定的长度,10次不确定,一个变量存放整个纹章也不够。
发表于 2011-4-30 12:52:10 | 显示全部楼层
循环1000次也没什么影响的,因为for的输入为空,循环数就只是微调
 楼主| 发表于 2011-4-30 12:58:30 | 显示全部楼层
30# zm900612

22?你真的要去小学进修了,哈哈。。。
发表于 2011-4-30 13:02:10 | 显示全部楼层
“将【替换为 "# ,将】替换为" ,直接达到分句效果”,这个倒是好办法,没想到
发表于 2011-4-30 15:08:52 | 显示全部楼层
等下试外部看怎么样

  1. @echo off
  2. (echo Set oDOM=WScript.GetObject("http://bbs.tt365.net.cn/viewthread.php?tid=161145"^)
  3. echo Do Until oDOM.readyState="complete"
  4. echo WScript.sleep 300
  5. echo Loop
  6. echo WScript.echo oDOM.documentElement.outerText)>%temp%\tem.vbs
  7. setlocal enabledelayedexpansion
  8. (
  9. for /f "delims=" %%i in ('cscript //nologo "%temp%\tem.vbs"^|find "【"') do (
  10.     set var=&set "str=%%i"
  11.     set "str=!str:*【=【!"
  12.     set "str=!str:【= 【!"
  13.     set "str=!str:】=】 !"
  14.     for %%j in (!str!) do (
  15.         set "j=%%j"
  16.         if "%%j" neq  "!j:【=!" (
  17.            if defined var (
  18.               for /f "delims=【】" %%k in ("%%j") do (
  19.                       if "!var:%%k=!" equ "!var!" set var=!var! 【%%k】
  20.               )
  21.            )else set var=%%j
  22.         )
  23.     )
  24.     for %%j in (!var!) do echo %%j
  25. )
  26. )>tem.txt
  27. del %temp%\tem.vbs&start "" tem.txt
  28. pause
复制代码
 楼主| 发表于 2011-4-30 15:47:24 | 显示全部楼层
35# terse
结果仍有重复,请兄再测试修改。。。
 楼主| 发表于 2011-4-30 15:49:33 | 显示全部楼层
我的解:

  1. @echo off&setlocal enabledelayedexpansion
  2. more +27 %~fs0>temp.vbs
  3. temp.vbs&del /q temp.vbs&set /a n+=1
  4. (for /f "delims=" %%a in ('findstr "【" a.txt') do (
  5.     set "str=%%a"
  6.     set "str=!str:【= !"&set "str=!str:】=$ !"
  7.     for %%a in (!str!) do (
  8.         set "a=%%a"&set "flag="&set "var=!a:~,-1!"
  9.         if "!a:~-1!" equ "$" (
  10.            for %%a in (!var!) do (
  11.                if defined str!n! for /l %%b in (1,1,!n!) do if "!str%%b:%%a=!" neq "!str%%b!" set "flag=a"
  12.                if not defined flag (
  13.                   echo 【%%a】
  14.                   for %%b in (!n!) do (
  15.                       set "a=!str%%b! %%a"
  16.                       if "!a:~8000!" equ "" (
  17.                          set "str%%b=!a!"
  18.                          ) else (
  19.                          set /a n+=1&set "str!n!=%%a"
  20.                       )
  21.                   )
  22.                )
  23.             )
  24.          )            
  25.      )
  26. ))>$
  27. move $ a.txt&start a.txt&goto :eof
  28. Set http = createObject("Microsoft.XMLHTTP")
  29. http.Open "get" , "http://bbs.tt365.net.cn/viewthread.php?tid=161145" , 0
  30. http.send()
  31. Set myGet = createObject("ADODB.Stream")
  32. myGet.Mode = 3
  33. myGet.Type = 1
  34. myGet.Open()
  35. myGet.Write(http.responseBody)
  36. myGet.SaveToFile "a.txt" , 2
  37. myGet.Close
  38. Set myGet = Nothing
  39. Set http = Nothing
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 03:37 , Processed in 0.017786 second(s), 7 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表