变量与带空格字符串对比问题
#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 编辑 ] 要让人家帮你找问题,起码要件要给全。
楼上的兄弟,这已经是全部代码了
就是获取回显再用if 对比然后操作FileDelete("TempWmicBatchFile.bat") ;这个运行后出现的临时文件,也无内容也不知道为什么会生成这个 #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 编辑 ] 获取的是本机的声卡名称,已经查看过是Realtek AC'97 Audio for VIA (R) Audio Controller
但用$se对比字符就不行了 你看看设备管理里的声卡是这名字?没错? 是这个没错,我是用dos运wmic再进行粘贴的
if $se = "Realtek AC'97 Audio for VIA (R) Audio Controller" Then msgbox(0,"",$se)
$se回显应该跟后面字符一样,可是对比之后没有运行msgbox啊 知道问题所在了,回显的字符串后面有很多空格的,两个字符串长度不一样。
#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 编辑 ] :face (23): 原来是这样,"顽固不化"谢谢 又见顽固不化!
页:
[1]