Board logo

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

作者: lifenjoiner     时间: 2008-12-4 00:04    标题: [原创]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 ]
作者: HAT     时间: 2008-12-4 09:52
感谢分享。
建议在第一行加上@echo off
把其它的@全部删除
作者: lifenjoiner     时间: 2008-12-4 21:43
谢啦。那是调试的遗留。