中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [原创]QQzone便捷察看器~以之促学,兴之所在!
作者:
标题: [原创]QQzone便捷察看器~以之促学,兴之所在! 上一主题 | 下一主题
lifenjoiner
新手上路




积分 19
发帖 12
注册 2008-10-11
状态 离线
『楼 主』:  [原创]QQzone便捷察看器~以之促学,兴之所在!

鉴于一些原因

------
ClearQzone.bat
@setlocal enabledelayedexpansion
@set /a n=0
@set /p ulist=输入你导出的好友列表文件名 [默认friends.txt]:=

@if "%ulist%"=="" set ulist=friends.txt

@for /f "usebackq delims=: tokens=2" %%i in (`findstr "消息对象" %ulist%`) do @(
   set /a n+=1
   set uname!n!=%%i
)

@set /a nn=%n%

@set /a n=0
@for /f "usebackq tokens=2" %%p in (`findstr "用户号码" %ulist%`) do @(
   set /a n+=1
   set  unumb!n!=%%p
)

@if not %nn%==0 @(
   if exist qzone.hta (del /s qzone.hta)
   echo 共有好友%nn%人
   echo ^<html^>>qzone.hta
   echo ^<head^>>>qzone.hta
   echo ^<title^>QQzone快速打开^</title^>>>qzone.hta
   echo ^</head^>>>qzone.hta
   echo ^<body^>>>qzone.hta
   echo http://^<input id="numb"^>^<button onclick="window.open('http://'+numb.value+'.qzone.qq.com','_blank')"^>.qzone.qq.com^</button^>>>qzone.hta
   echo ^<hr^>>>qzone.hta
   for /l %%x in (1,1,!nn!) do @(
      echo ^<br^>^<input value="!unumb%%x!" onclick="numb.value=this.value"^>-!uname%%x!>>qzone.hta
   )
   echo ^</body^>>>qzone.hta
   echo ^</html^>>>qzone.hta
   echo 更新成功
)

@pause
使用方法:
1.QQ好友管理导出好友列表
2.同一文件夹内运行本脚本
3.生成qzone.hta即是
------
用途:
1.不引发qzone.exe进程
2.不登陆即可看qzone
3.你不会出现在对方的最近浏览里
=======
希望改进。把findstr用好。
=========
进化:
20081205:
1."   if exist qzone.hta (del /s qzone.hta)"行须删除
2.采用HAT建议用@echo off

ClearQzone(@).bat
@echo off
setlocal enabledelayedexpansion
set /a n=0
set /p ulist=输入你导出的好友列表文件名 [默认friends.txt]:=

if "%ulist%"=="" set ulist=friends.txt

for /f "usebackq delims=: tokens=2" %%i in (`findstr "消息对象" %ulist%`) do (
   set /a n+=1
   set uname!n!=%%i
)

set /a nn=%n%

set /a n=0
for /f "usebackq tokens=2" %%p in (`findstr "用户号码" %ulist%`) do (
   set /a n+=1
   set unumb!n!=%%p
)

if not %nn%==0 (
   echo 共有好友%nn%人
   echo ^<html^>>qzone.hta
   echo ^<head^>>>qzone.hta
   echo ^<title^>QQzone快速打开^</title^>>>qzone.hta
   echo ^</head^>>>qzone.hta
   echo ^<body^>>>qzone.hta
   echo ^http://^<input id="numb"^>^<button onclick="window.open('http://'+numb.value+'.qzone.qq.com','_blank')"^>.qzone.qq.com^</button^>>>qzone.hta
   echo ^<hr^>>>qzone.hta
   for /l %%x in (1,1,!nn!) do (
      echo ^<br^>^<input value="!unumb%%x!" onclick="numb.value=this.value"^>-!uname%%x!>>qzone.hta
   )
   echo ^</body^>>>qzone.hta
   echo ^</html^>>>qzone.hta
   echo 更新成功
)

pause
20081207:
考虑以上方法设置变量太多,减少临时变量
感谢论坛里朋友帮我解决了findstr两个中文字符串不匹配的问题
ClearQzone(@set).bat
@echo off
setlocal enabledelayedexpansion
set /a n=0
set /a flg=0
set /p ulist=输入导出的好友列表文件名[如:friends.txt]:=
if "%ulist%"=="" set ulist=friends.txt


echo ^<html^>>qzone.hta
echo ^<head^>>>qzone.hta
echo ^<title^>QQzone快速打开^</title^>>>qzone.hta
echo ^</head^>>>qzone.hta
echo ^<body^>>>qzone.hta
echo http://^<input id="numb"^>^<button onclick="window.open('http://'+numb.value+'.qzone.qq.com','_blank')"^>.qzone.qq.com^</button^>>>qzone.hta
echo ^<hr^>>>qzone.hta

for /f "usebackq delims=" %%i in (`findstr /r "消息对象 用户号码" %ulist%`) do (
   set tempstr=%%i
   set ustr=!tempstr:~5!
   if !flg!==0 (
      set /a flg+=1
      set codestr=!codestr! onclick="numb.value=this.value"^>-!ustr!
   ) else (
      set /a flg-=1
      set /a n+=1
      set codestr=^<br^>^<input value="!ustr!"!codestr!
      echo !codestr!>>qzone.hta
      set codestr=
   )
)

echo ^</body^>>>qzone.hta
echo ^</html^>>>qzone.hta

echo 更新成功
echo 共有好友%n%人
pause
[ Last edited by lifenjoiner on 2008-12-7 at 13:23 ]

   此帖被 +4 点积分     点击查看详情   
评分人:【 HAT 分数: +4  时间:2008-12-4 09:52




抓住规律、结果整齐、代码简洁
2008-12-4 00:04
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 2 楼』:  

感谢分享。
建议在第一行加上@echo off
把其它的@全部删除



2008-12-4 09:52
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lifenjoiner
新手上路




积分 19
发帖 12
注册 2008-10-11
状态 离线
『第 3 楼』:  

谢啦。那是调试的遗留。



抓住规律、结果整齐、代码简洁
2008-12-4 21:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: