itsky2 发表于 2021-2-11 13:35:25

itzyx 发表于 2021-2-6 16:50
好的,我再看看帮助文件,找找办法,谢谢A大

以下是经过反复测试、编写后最完善的代码,可应对各种情况:
Func RunCmd($sCommand, $bBin = False, $bWait = False) ;1:命令行 2:是否以二进制方式读取(防止中文乱码) 3:是否等待进程执行完毕(防止部分exe数据流获取不全,如Diskpart)
        If $bBin = True Then
                Local $sOutput = Binary('')
        Else
                Local $sOutput = ''
        EndIf
        Local $iPID = __Run($sCommand, '', @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD)
       
        If $bWait Then
                ProcessWaitClose($iPID)
                $sOutput = StdoutRead($iPID, False, $bBin)
        Else
                While 1
                        $sOutput &= StdoutRead($iPID, False, $bBin)
                        If @error Then ExitLoop
                WEnd
        EndIf
        If $bBin Then $sOutput = BinaryToString($sOutput, 4)
        Return $sOutput
EndFunc   ;==>RunCmd

itzyx 发表于 2021-2-19 09:01:25

itsky2 发表于 2021-2-11 13:35
以下是经过反复测试、编写后最完善的代码,可应对各种情况:

感谢大佬    家里没电脑,没来得及回复
页: 1 [2]
查看完整版本: 【已解决】关于CMD 回显输出的问题