如何在“是/否”味精中包装命令?

时间:2019-06-04 13:45:27

标签: vbscript

我想将以下代码设置为是/否,甚至是10秒的定时“是”(默认)。我环顾了一下,找到了一些答案,但是很遗憾,我无法使用测试环境,因此无法快速获得结果。

我的vb是:

Set objShell = CreateObject("WScript.Shell")
cmd = "%comspec% /c diskpart /s X:\cleandisk.txt"
objShell.Run cmd,1,1    ' Run the command in a window and wait for a return

我希望能够提示您运行或跳过此操作。上下文是MDT环境。目的是在成像之前擦拭磁盘。不幸的是,它一直在运行,当我去捕获图像时,它会擦拭驱动器(哎呀)。因此,不要过度限制有限的资源,而是简单地选择是否运行是我的最佳选择。

作为一种选择,我想在默认的“是”答案上设置10秒的倒计时计时器。

正如我前面提到的,我并不反对自己弄清楚它,但是我在工作中有有限的资源(vbs编辑,测试环境等)。

1 个答案:

答案 0 :(得分:1)

您可以使用Popup方法。

Dim objShell: Set objShell = CreateObject("WScript.Shell")

Select Case objShell.Popup("Run this? Will autorun in 10 seconds!", 10, "Title", 1)
Case -1 
    'Timed Out
Case 1
    'OK Pressed
Case 2
    'Cancel Pressed
End Select

返回值

  • -1值:MsgBox超时。您可以将其与案例1结合使用,因为您希望它们执行相同的操作(见下文)
  • 1值:用户按下“确定”按钮
  • 2值:用户按下“取消”按钮

由于您要使用与用户按“确定”相同的方式来处理超时,因此可以将两个值组合为一种情况:

Dim objShell: Set objShell = CreateObject("WScript.Shell")

'                                               This is the timeout ↓↓ 
Select Case objShell.Popup("Run this? Will autorun in 10 seconds!", 10, "Title", 1)
Case -1, 1
    cmd = "%comspec% /c diskpart /s X:\cleandisk.txt"
    objShell.Run cmd,1,1
Case 2
    ' Do nothing
End Select