Board logo

标题: [已解决]如何用脚本生成此bat [打印本页]

作者: tireless     时间: 2007-10-9 12:27    标题: [已解决]如何用脚本生成此bat

目录下有个Seting.ini,内容是

[859749548]
号码=859749548
版本=腾讯原版
路径=d:\program files\深度 deepqq\QQ.exe
登录方式=正常
MIN=b3Do41/sjBI4fOUhlpwbcQ==

我要生成一个批处理,内容是(注:■表示此处为空格)

start■d:\“program files”\"深度 deepqq”\QQ.exe■/START■QQUIN:859749548■PWDHASH:b3Do41/sjBI4fOUhlpwbcQ==■/STAT:41

批处理的内容随着Seting.ini的改变而变(有颜色的是会变的):
1.路径名称如有空格,要用双引号括起来(或者全加引号好像也行)
2.生成的bat以号码命名

[ Last edited by tireless on 2007-10-8 at 09:36 PM ]
作者: HAT     时间: 2007-10-9 13:10
可以通过注册表来获取QQ的安装路径,个人觉得这样更具有移植性。
@echo off
for /f "skip=4 tokens=1,2 delims=:" %%a in ('reg query HKEY_LOCAL_MACHINE\SOFTWARE\Tencent\QQ /v Install') do (
  set QQPathL=%%a
  set QQPathR=%%b
)
set QQPath=%QQPathL:~-1%:%QQPathR%
cd %QQPath%
start qq.exe /start QQUIN:843875648 PWDHASH:4Z1c1a8DeNoF9j+JHHRnrw== /stat:10

作者: tireless     时间: 2007-10-9 13:53


  Quote:
Originally posted by HAT at 2007-10-8 05:10 PM:
可以通过注册表来获取QQ的安装路径,个人觉得这样更具有移植性。

不需要,就按照Seting.ini里面路径就可以。
生成的bat是随着Seting.ini的改变而变,有颜色的就是会变的。

另外你的执行不了
作者: wudixin96     时间: 2007-10-9 13:54

@echo off
cd.>一键启动.bat
for /f "eol=[ tokens=1* delims==" %%a in (Seting.ini) do (
   if "%%a"=="号码" set hm=%%b&&set fl=0
   set /a fl+=1
   if "%%a"=="路径" set lj=%%b
   if /i "%%a"=="min" set min=%%b
   setlocal enabledelayedexpansion
   if !fl! equ 5 call :th
   endlocal
)
pause
goto :eof
:th
set lj=%lj: =/%
set lj=%lj:\= %
for %%i in (%lj%) do (
  set str=%%i
  set ljstr=%%i
  set /a num+=1
  call set str=%%str:/= %%
  if not "!str!"=="!ljstr!" set str="!str!"
  call set str%%num%%=%%str%%
)
set str=
for /l %%i in (1,1,%num%) do (
  call set str=%%str%%\%%str%%i%%
)

echo start %str:~1% /START QQUIN:%hm% PWDHASH:%min% /STAT:41>>一键启动.bat
[ Last edited by wudixin96 on 2007-10-9 at 04:06 PM ]
作者: tireless     时间: 2007-10-9 14:17    标题: 回复 4# 的帖子

呵呵,不慢不慢。两三秒根本感觉不到,眨下眼就到了。

成功了,谢谢!

另外,如果Seting.ini的内容有N个
[859749548]
号码=859749548
版本=腾讯原版
路径=d:\program files\深度 deepqq\QQ.exe
登录方式=正常
MIN=b3Do41/sjBI4fOUhlpwbcQ==
[75323557]
号码=75323557
版本=腾讯原版
路径=d:\program files\深度 deepqq\QQ.exe
登录方式=正常
MIN=vtBheCm9JLe6jrBtxmEQUg==
...

生成的BAT是:

start d:\"program files"\"深度 deepqq"\QQ.exe /START QQUIN:859749548 PWDHASH:b3Do41/sjBI4fOUhlpwbcQ== /STAT:41
start d:\"program files"\"深度 deepqq"\QQ.exe /START QQUIN:75323557 PWDHASH:vtBheCm9JLe6jrBtxmEQUg== /STAT:41
...

这个批处理要怎么写呢?
作者: wudixin96     时间: 2007-10-9 14:26
差不多的,就在第一个for里加一两句就行了。

但效率不行的,还是建议修改一下

不提高效率的话,文本内容越多所耗得时间就是翻倍的。
作者: wudixin96     时间: 2007-10-9 14:46
改进过了,效率高了一点。
作者: tireless     时间: 2007-10-9 15:02
有个问题,不会加引号了

可以生成N个以号码命名的BAT了,能不能只生成一个啊,就像我上面说的
(简单点可以用copy *.bat 一键启动.bat,但怎么复制它自己)

[ Last edited by tireless on 2007-10-8 at 07:13 PM ]
作者: wudixin96     时间: 2007-10-9 15:10
引号有的啊,你再复制试试???
作者: tireless     时间: 2007-10-9 15:24
刚才试没有。现在有了。

试了下Seting.ini如果有N个,可以生成11111.bat、22222.bat、859749548.bat。要怎么只生成一个呢?用copy?
[859749548]
号码=859749548
版本=腾讯原版
路径=D:\Program Files\深度 DEEPQQ\LiteIM.exe
登录方式=正常
MIN=b3Do41/sjBI4fOUhlpwbcQ==
[859749548]
号码=22222
版本=腾讯原版
路径=D:\Program Files\Maxthon2\Maxthon.exe
登录方式=正常
MIN=b3Do41/sjBI4fOUhlpwbcQ==
[859749548]
号码=11111
版本=腾讯原版
路径=D:\Program Files\Maxthon2\Maxthon.exe
登录方式=正常
MIN=b3Do41/sjBI4fOUhlpwbcQ==
作者: wudixin96     时间: 2007-10-9 15:25
就是全部写入同一个bat文件里??

而不是根据QQ号码来命令bat文件,是吗??
作者: tireless     时间: 2007-10-9 15:30
恩 命名其实无所谓,就命名为一键启动.bat就可以了
作者: wudixin96     时间: 2007-10-9 16:04
现在似乎可以了,原来那个有个很大的bug。

会重复call好几个,速度就更慢了。
作者: tireless     时间: 2007-10-9 16:26
幸苦了。可以用。