分别读取输出和输入每一行-Python/SecureCRT
我试图获取一个Python脚本来读取命令的输出,然后根据它接收到的列表运行多个命令。我通常不写VBS或Python,所以我陷入了困境。(很难看) 输入正常(尽管我希望它能忽略>文本的开头(分别读取输出和输入每一行-Python/SecureCRT,python,string,list,secure-crt,Python,String,List,Secure Crt,我试图获取一个Python脚本来读取命令的输出,然后根据它接收到的列表运行多个命令。我通常不写VBS或Python,所以我陷入了困境。(很难看) 输入正常(尽管我希望它能忽略>文本的开头(sn200028),但这并不重要 接下来我要讲的两个部分是: 第1部分:如何让it发送正确的输出。正确的输出应为: scsi i gen X w 0 100 1 0 其中X是此列表中的数字之一 第2部分。我需要它为列表中的每个项目实际发送此命令。而不是将整个列表作为X 非常感谢您的帮助。现在我们必须复制并粘
sn200028
),但这并不重要
接下来我要讲的两个部分是:
第1部分:如何让it发送正确的输出。正确的输出应为:
scsi i gen X w 0 100 1 0
其中X
是此列表中的数字之一
第2部分。我需要它为列表中的每个项目实际发送此命令。而不是将整个列表作为X
非常感谢您的帮助。现在我们必须复制并粘贴这些列表,然后将它们添加到另一个列表中,然后进行剪切和粘贴。只需从SecureCRT运行此操作将更加有益。
def Main():
objTab = crt.GetScriptTab()
objTab.Screen.Synchronous = True
objTab.Screen.IgnoreEscape = True
objTab.Screen.Send("scsi i dev select 1" + chr(13))
objTab.Screen.WaitForString("============")
objTab.Screen.Send(chr(13))
szPrompt = "s"
szResult = objTab.Screen.ReadString(szPrompt)
result = crt.Dialog.MessageBox('Press OK to erase the first 100 blocks of the following devices: \n' + (szResult) , 'Run?' , ICON_QUESTION | BUTTON_YESNO | DEFBUTTON2)
if result == IDNO:
return
if result == IDYES:
vList = szResult.splitlines()
for strString in vList:
crt.Dialog.MessageBox('scsi i gen' + (strString) + ' w 0 100 1 0' + chr(13))
Main()
我可以使用Stru.SPLITELIN来分割每一行,然后将它添加到消息框中。
我不知道你正在解决什么问题,但可能还是更合适的工具。如果不是,请考虑直接使用,而不是编写一个终端仿真器。def Main():
objTab = crt.GetScriptTab()
objTab.Screen.Synchronous = True
objTab.Screen.IgnoreEscape = True
objTab.Screen.Send("scsi i dev select 1" + chr(13))
objTab.Screen.WaitForString("============")
objTab.Screen.Send(chr(13))
szPrompt = "s"
szResult = objTab.Screen.ReadString(szPrompt)
result = crt.Dialog.MessageBox('Press OK to erase the first 100 blocks of the following devices: \n' + (szResult) , 'Run?' , ICON_QUESTION | BUTTON_YESNO | DEFBUTTON2)
if result == IDNO:
return
if result == IDYES:
vList = szResult.splitlines()
for strString in vList:
crt.Dialog.MessageBox('scsi i gen' + (strString) + ' w 0 100 1 0' + chr(13))
Main()