本帖最后由 yuantian 于 2022-3-24 22:46 编辑
大约代码(正则比较简陋,献丑啦):
#include <Array.au3>
$aResult = __Run_Bat_Get_Echo("G:\certmgr.exe /v /s my")
$aArray = StringRegExp($aResult,"(?s)\=(Certificate.*?)\s=.*?(SerialNumber).*?\n\s*(.*?)\n.*?(SHA1 Thumbprint).*?\n\s*(.*?)\n.*?(MD5 Thumbprint).*?\n\s*(.*?)\n", 3, 1)
_ArrayDisplay($aArray)
Func __Run_Bat_Get_Echo($Command);运行批处理命令,并返回执行结果
;功能 :完整返回批处理命令的执行回显。不会出现乱码或者缺失。支持将多条命令连在一起执行
;注意 :支持带参数执行批处理。支持带变量执行批处理。但变量中请注意“'”标点符号的使用,不使用或需要成对使用。
;作者 :迷路轮回
;编写时间:2018-02-27
;最后更新:2019-02-03
Local $iPID = Run(@ComSpec & ' /c ' & $Command, @ScriptDir, @SW_HIDE, 8)
If Not @error Then
ProcessWaitClose($iPID)
Local $Result = BinaryToString(StdoutRead($iPID, 1, 1))
Return $Result
EndIf
EndFunc ;==>__Run_Bat_Get_Echo
__Run_Bat_Get_Echo()的部分,请见地址:
https://autoitx.com/thread-71099-1-1.html
|