Попытка сценария удаления без вывода сообщений с помощью VBScript
Я пытаюсь написать скрипт для удаления некоторых приложений. У меня работает скрипт, но каждая программа выдает подсказку при запуске.
Я знаю, что приложения поддерживают параметр "/S", поэтому можно выполнить автоматическое удаление. Я могу запустить команду uninstall / s из командной строки, и она отлично работает. Никаких подсказок, он просто удаляется.
Моя проблема вызывает параметр /S в скрипте. Как бы я ни старался, я получаю синтаксические ошибки. Я знаю, что это только я и мое непонимание кавычек и скобок, но я устала пытаться заставить его работать. Проблема усугубляется тем фактом, что на всех путях есть пробелы, что требует большего количества этих чертовых кавычек. Надеюсь, кто-нибудь покажет мне, что я делаю не так.
Кроме того, я действительно не знаю, что я делаю с VBS, поэтому я был бы признателен, если бы вы все не заметили, насколько уродлив сценарий.:-)
У меня также есть вопрос об "истинном" параметре. Насколько я понимаю, это означает, что текущая операция должна быть завершена до перехода к следующей операции. Но, кажется, деинсталляции запускаются одновременно. Правильно ли я понимаю "истинный" параметр?
Команда для удаления без вывода сообщений:
C: \ Program Files \ Juniper Networks \ Network Connect 7.1.9 \ uninstall.exe /S
Вот мой скрипт без параметра "/S".
'Uninstall Juniper Networks Network Connect 7.1.9
Wscript.Echo "Uninstalling 'Juniper Networks Network Connect 7.1.9'"
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run ("""C:\Program Files\Juniper Networks\Network Connect 7.1.9\uninstall.exe"""), 1, True
Set objShell = nothing
1 ответ
Вот мое самоочевидное решение:
' VB Script Document
'http://stackru.com/questions/23569022/trying-to-script-a-silent-uninstall-with-vbscript
option explicit
Dim strResult
strResult = Wscript.ScriptName _
& vbTab & "Uninstalling 'Juniper Networks Network Connect 7.1.9'"
Dim strCommand, intWindowStyle, bWaitOnReturn, intRetCode
' strCommand
' String value indicating the command line you want to run.
' You must include any parameters you want to pass to the executable file.
strCommand = """C:\Program Files\Juniper Networks\Network Connect 7.1.9\uninstall.exe"" /S"
'for test only strCommand = """C:\Program Files\Mozilla Firefox\firefox.exe"" -safe-mode"
' intWindowStyle
' Optional. Integer value indicating the appearance of the program's window.
' Note that not all programs make use of this information.
intWindowStyle = 1
' bWaitOnReturn
' Optional. Boolean value indicating whether the script should wait
' for the program to finish executing before continuing
' to the next statement in your script.
' If set to true, script execution halts until the program finishes,
' and Run returns any error code returned by the program.
' If set to false (the default), the Run method returns 0 immediately
' after starting the program (not to be interpreted as an error code).
bWaitOnReturn = True
strResult = strResult & vbNewLine & strCommand _
& vbNewLine & CStr( intWindowStyle) _
& vbNewLine & CStr( bWaitOnReturn)
Wscript.Echo strResult
Dim objShell
Set objShell = WScript.CreateObject( "WScript.Shell" )
' intRetCode
' The Run method returns an integer
intRetCode = objShell.Run( strCommand, intWindowStyle, bWaitOnReturn)
Set objShell = nothing
Wscript.Echo strResult & vbNewLine & "result=" & CStr( intRetCode)
Wscript.Quit