【发布时间】:2016-07-22 21:48:06
【问题描述】:
我有这个vbs(部分脚本由hackoo提供)来启动sfc.exe来修复系统文件,但是像我需要添加一些功能,比如消息,我在运行sfc时需要。 exe,显示消息“等待”(隐藏 sfc.exe 窗口)和程序结束,退出最终消息,但脚本无法正常工作(sfc.exe 隐藏窗口失败并在结束前显示最终消息)
Option Explicit
' Run as Admin
If Not WScript.Arguments.Named.Exists("elevate") Then
CreateObject("Shell.Application").ShellExecute WScript.FullName _
, WScript.ScriptFullName & " /elevate", "", "runas", 1
WScript.Quit
End If
On Error Resume next
mensaje = MSGBOX ("Start System File Checker", vbOKCancel, "System File Checker")
If mensaje = vbOK Then
Dim ws,MyCommand,Execution
Set ws = createobject("wscript.shell")
MyCommand = "%windir%\system32\SFC.exe /SCANNOW"
Execution = ws.run(MyCommand,1,False)
objshell.run NewPath,vbhide
CALL MSGBOX ("System File Checker has finished", VBOKONLY, "System File Checker")
Else
CALL MSGBOX ("System File Checker has been canceled", VBOKONLY, "System File Checker")
End If
On Error GoTo 0
注意:运行隐藏的 sfc.exe 时缺少“等待”部分
谢谢
【问题讨论】:
-
如有疑问,请阅读documentation。
-
你想用这条线做什么
objshell.run NewPath,vbhide没有对objshell或NewPath的引用 -
而这个
Execution = ws.run(MyCommand,1,False)并没有等待返回 - 所以它完全按照你的吩咐去做。