我有以下vbscript命令:
var dictionary = [
"timeStamp": ["123","345","456","234"],
"condition": ["dry","wet","very wet","dry"]
]
let sorted = Array(0..<dictionary["timeStamp"]!.count)
.map { (timeStamp: dictionary["timeStamp"]![$0], condition: dictionary["condition"]![$0]) }
.sort { $0.timeStamp < $1.timeStamp }
dictionary["timeStamp"] = sorted.map { $0.timeStamp }
dictionary["condition"] = sorted.map { $0.condition }
print(dictionary)
我想知道是否有办法知道命令是否输出任何内容,我需要在vbscript中执行此操作
答案 0 :(得分:1)
从我发布的有限示例中我可以收集的内容看起来好像您正在使用VanDyke Software's SecureCRT产品,该产品支持使用脚本执行任务自动化。
在软件提供商网站上发现了相当详细的Scripting Essentials Guide。
在指南中详细介绍了如何从远程计算机捕获数据(参见指南中的4.3)
来自Scripting Essentials: A Guide to Using VBScript in SecureCRT
以下与Screen对象关联的方法可用于通过a捕获数据 与远程计算机的连接:ReadString()
,Get()
和Get2()
。虽然SecureCRT的 日志记录功能也可用于从远程设备捕获数据,日志API也是如此 在后面的章节中引用和讨论(使用FileSystemObject将数据写入文件)。如果 您正在寻找访问SecureCRT终端当前所选数据的方法 屏幕,请参阅前面的部分,在屏幕上访问所选文本。
您可能还会发现this article有用,它解释了ReadString()
的工作原理,并举例说明如何使用它将命令输出捕获到变量中。
该指南提供了使用ReadString()
如何从Cisco设备检索序列号的基本示例。
crt.Screen.Synchronous = True
' Send a command to a Cisco device to get the serial number
' of the device.
crt.Screen.Send "sh tech-support | in ([sS]erial)" & vbcr
' Wait for the CR to be echoed back to us so that what is
' read from the remote is only the output of the command
' we issued (rather than including the command issued along
' with the output).
crt.Screen.WaitForString vbcr
' Capture the result into a script variable
strResult = crt.Screen.ReadString("pixfirewall#")
' strResult will contain something like:
' Serial Number: 1850889413810201 (0x6935FC6075819)
MsgBox strResult
您应该根据自己的要求进行修改。
该示例的工作原理是,一旦发送命令并且回车字符(在Linux上影响输入密钥)返回(表示命令已运行)然后使用ReadString()
捕获输出,但只有在终端窗口中检测到提示符pixfirewall#
时才会捕获。