风行者 发表于 2009-3-14 11:41:51

变量与带空格字符串对比问题

#include <constants.au3>
$name = run(@ComSpec & ' /c "wmic sounddev get name | more +1"',"",@SW_HIDE,$stdout_child)
ProcessWaitClose($name)
$se = StdoutRead($name)
FileDelete("TempWmicBatchFile.bat")
if $se = "Realtek AC'97 Audio for VIA (R) Audio Controller" Then msgbox(0,"",$se)


上面最后的显卡类型是Realtek AC'97 Audio for VIA (R) Audio Controller,但没有运行msgbox
请教怎样对比才正确:face (37):

[ 本帖最后由 风行者 于 2009-3-14 13:36 编辑 ]

顽固不化 发表于 2009-3-14 12:18:52

要让人家帮你找问题,起码要件要给全。

风行者 发表于 2009-3-14 12:47:17

楼上的兄弟,这已经是全部代码了

就是获取回显再用if 对比然后操作

FileDelete("TempWmicBatchFile.bat") ;这个运行后出现的临时文件,也无内容也不知道为什么会生成这个

顽固不化 发表于 2009-3-14 13:08:20

#include <constants.au3>
$name = run(@ComSpec & ' /c "wmic sounddev get name | more +1"',"",@SW_HIDE,$stdout_child)
ProcessWaitClose($name)
$se = StdoutRead($name)
FileDelete("TempWmicBatchFile.bat")
msgbox(0,"",$se)

你先看看获得了什么回显内容。
我的回显是正确的



[ 本帖最后由 顽固不化 于 2009-3-14 13:11 编辑 ]

风行者 发表于 2009-3-14 13:10:09

获取的是本机的声卡名称,已经查看过是Realtek AC'97 Audio for VIA (R) Audio Controller

但用$se对比字符就不行了

顽固不化 发表于 2009-3-14 13:13:57

你看看设备管理里的声卡是这名字?没错?

风行者 发表于 2009-3-14 13:20:30

是这个没错,我是用dos运wmic再进行粘贴的

if $se = "Realtek AC'97 Audio for VIA (R) Audio Controller" Then msgbox(0,"",$se)

$se回显应该跟后面字符一样,可是对比之后没有运行msgbox啊

顽固不化 发表于 2009-3-14 13:26:40

知道问题所在了,回显的字符串后面有很多空格的,两个字符串长度不一样。

#include <constants.au3>
$name = run(@ComSpec & ' /c "wmic sounddev get name | more +1"',"",@SW_HIDE,$stdout_child)
ProcessWaitClose($name)
$se = StdoutRead($name)
FileDelete("TempWmicBatchFile.bat")
if StringInStr($se,"Realtek AC'97 Audio for VIA (R) Audio Controller") Then msgbox(0,"",$se)

[ 本帖最后由 顽固不化 于 2009-3-14 13:28 编辑 ]

风行者 发表于 2009-3-14 13:35:15

:face (23): 原来是这样,"顽固不化"谢谢

316428696 发表于 2010-1-22 01:48:15

又见顽固不化!
页: [1]
查看完整版本: 变量与带空格字符串对比问题