2016-05-19 5 views
2

Мне нужно выполнить команду, подобную «cscript OSPP.vbs/dstatus» из визуального базового приложения. Я использую следующий код, но мне не удалось передать аргумент «dstatus» в OSPP.vbs. Как я мог это сделать? Любые справкуКак запустить скрипт vbs из VB.Net и передать аргументы в запущенный скрипт vb

Dim start As New ProcessStartInfo 
    Dim task As New Process 
    Dim so As IO.StreamReader 

    start.FileName = "C:\WINDOWS\system32\cscript.exe" 
    start.Arguments = """C:\Program Files (x86)\Microsoft Office\Office15\OSPP.vbs /dstatus""" 

    start.UseShellExecute = False 
    start.RedirectStandardOutput = True 
    start.RedirectStandardError = False   

    task.StartInfo = start 
    task.Start() 
    so = task.StandardOutput 
    task.WaitForExit() 
    MsgBox(so.ReadToEnd) 

ответ

0

Ваши аргументы плохо сформированы, поскольку путь имеет пробелы, которые необходимо заключить между двойными кавычками.

Попробуйте это:

Dim args as string = 
    String.Format("""{0}"" ""{1}""", 
        "C:\Program Files (x86)\Microsoft Office\Office15\OSPP.vbs", 
        "/dstatus") 

start.FileName = "C:\WINDOWS\system32\cscript.exe" 
start.Arguments = args 
+0

Это workwed !, спасибо –