Board logo

标题: “for指定qq号,if限制与指定qq号临时对话” (已解决) [打印本页]

作者: hangyug     时间: 2007-1-23 03:22    标题: “for指定qq号,if限制与指定qq号临时对话” (已解决)

看到这样一个批处理:(与某qq临时对话)
@Echo Off
:send
Set /p num=请输入对方的QQ号码:
If /I "%num%"=="n"  Exit
start tencent://Message/?Uin=%num%
cls
Goto send
我想把它改成:不能与特定号码对话,比如不能和123456和654321对话,我是这样写的:
@echo off
set /p a=快输入qq号:
for %%1 in (123456 654321) do @if %a%=%%1 exit
start tencent://Message/?Uin=%a%
运行后,就自动退出了,我错在哪里了?请指教。。。

[ Last edited by namejm on 2007-3-13 at 01:41 PM ]
作者: zh159     时间: 2007-1-23 03:37
不能用数字作为for的%%参数
作者: hangyug     时间: 2007-1-23 04:04
那应该怎样写呢?请指教一下。。。
作者: zh159     时间: 2007-1-23 04:18
用字母啊!

for %%a in (123456 654321) do @if “%a%”=“%%a” exit
作者: hangyug     时间: 2007-1-23 04:26
测试了,不行啊。
比如,我输入380928777号,然后什么都不显示。。。
作者: lxmxn     时间: 2007-1-23 06:42

@echo off
set/p a=请输入QQ号:
if "%a%"=="" exit
for %%i in (123456 654321) do if "%a%"=="%%i" (pause>nul&exit/b)
start tencent://message?Uin=%a%

作者: hangyug     时间: 2007-1-23 07:51
谢谢lxmxn,我的能力只能加两分,以表感谢。
如果不介意的话,能不能帮我解释一下,我那么写为什么不行吗?
还有(pause>nul&exit/b) 中的“括号”是什么意思,为何用括号括起来?
作者: hangyug     时间: 2007-1-23 07:54
谢谢lxmxn,我的能力只能加两分,以表感谢。
如果不介意的话,能不能帮我解释一下,我那么写为什
作者: lxmxn     时间: 2007-1-23 07:59

  你的代码中,FOR命令的参数使用了%%1,这样容易出错,批处理会把%1认为是命令行传递的参数,故而导致批处理运行出错,达不到你的目的。2F、4F已经说明了,最好用字符。
 
  用括号和不用括号效果应该是一样的,纯属个人习惯问题。

作者: hangyug     时间: 2007-1-23 08:09
谢谢,而且我还发现了一个错误,就是if句中的==,我少写了一个,真是晕啊~
再次感谢你,又学到一些东西。。。
作者: zh159     时间: 2007-1-23 10:17


  Quote:
Originally posted by hangyug at 2007-1-22 19:09:
谢谢,而且我还发现了一个错误,就是if句中的==,我少写了一个,真是晕啊~
再次感谢你,又学到一些东西。。。

我说我的你怎么用不了,复制你的就少了一个-_-|||
作者: hangyug     时间: 2007-1-23 11:10
呵呵,是啊,其实我自己写的就能用的。。。就是少了一个=。。。大意了。
作者: xycoordinate     时间: 2007-3-14 22:07
能直接向指定的QQ号发信息!

就是用tencent://message?Uin=“*”
还要加点什么?