2014-02-19 3 views
3

Мне нужна одна, простая вещь. Я использую VBS позвонить Powershell, и я хотел, чтобы выполнить его с параметром (переменной от VBS)вызов Powershell в VBS с параметрами

Dim Input

вход = InputBox ("Введите псевдоним пользователя, чтобы проверить")
Set objShell = CreateObject ("Wscript.Shell")

objShell.run ("powershell.exe -noexit -file. \ ps_v2.ps1") & Input

Как вы видите, это довольно короткий и легко с ode, PS_v2.ps1 отлично работает при выполнении в консоли PS напрямую с аргументом. Мне нужен переменный ввод, который будет использоваться как параметр.

В PS консоли я просто введите

. \ Ps_V2.ps1 Input

и она работает. Так что это должно быть где-то в ObjShell.run. Когда я использовал эхо только для проверки правильности назначения переменной, я получил правильный результат.

Результат: окно PowerShell появляется только на секунду и исчезает. Я думаю, что он вообще не принимает «Ввод».

Так что сделайте длинный рассказ коротким. Как следует искать линию VBS для вызова сценария PS с аргументом? Также как «. \ Ps_V2.ps1 Вход» в консоли PS.

Большое спасибо!

Отредактировано: 19.2.2014 - 16:32 Спасибо Ekkehard.Horner, работает отлично

ответ

2

конкатенации (&) находится в неправильном Palce:

Set objShell = CreateObject("Wscript.Shell") objShell.run("powershell.exe -noexit -file .\ps_v2.ps1") &Input 

Set objShell = CreateObject("Wscript.Shell") objShell.run("powershell.exe -noexit -file .\ps_v2.ps1 " & Input) 
+0

OMG! Спасибо!!!!!!! Вы сделали мой день! – user3328316

Смежные вопросы