Board logo

标题: [原创]QQzone便捷察看器~以之促学,兴之所在! [打印本页]

作者: lifenjoiner     时间: 2008-12-4 00:04    标题: [原创]QQzone便捷察看器~以之促学,兴之所在!
鉴于一些原因

------
ClearQzone.bat

@setlocal enabledelayedexpansion
@set /a n=0
@set /p ulist=输入你导出的好友列表文件名 :=

@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=输入你导出的好友列表文件名 :=

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=输入导出的好友列表文件名:=
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 ]

作者: HAT     时间: 2008-12-4 09:52
感谢分享。
建议在第一行加上@echo off
把其它的@全部删除

作者: lifenjoiner     时间: 2008-12-4 21:43
谢啦。那是调试的遗留。