在WScript.Run中使用变量

时间:2017-03-09 10:09:03

标签: powershell vbscript wsh

以下工作正常:

的VBScript

Script = "C:\Users\bob\Downloads\Logon scripts\Script.ps1"
Dim oSHELL
Set oSHELL = CreateObject("WScript.Shell")
oSHELL.Run "powershell.exe -ExecutionPolicy Bypass -NoLogo -File ""C:\Users\bob\Downloads\Logon scripts\Script.ps1""", 0, True
Set oSHELL = Nothing

当我试图将脚本的路径放在变量中时,它不起作用:

oSHELL.Run "powershell.exe -ExecutionPolicy Bypass -NoLogo -File ""Script""", 0, True
oSHELL.Run "powershell.exe -ExecutionPolicy Bypass -NoLogo -File""" & Script & """", 0, True

Script.ps1

Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.MessageBox]::Show("Test MessageBox", "Information")

如何让WScript正确使用变量?

1 个答案:

答案 0 :(得分:4)

除了第二个示例中的轻微错误-File之后缺少空格) 目前,它将像

一样执行
powershell.exe -ExecutionPolicy Bypass -NoLogo -File"C:\Users\bob\Downloads\Logon scripts\Script.ps1"

并产生错误,您未在问题中记录。

我不明白为什么这不起作用。

Dim oSHELL: Set oSHELL = CreateObject("WScript.Shell")
Dim Script: Script = "C:\Users\bob\Downloads\Logon scripts\Script.ps1"
Call oSHELL.Run("powershell.exe -ExecutionPolicy Bypass -NoLogo -File """ & Script & """", 0, True)

相当于;

powershell.exe -ExecutionPolicy Bypass -NoLogo -File "C:\Users\bob\Downloads\Logon scripts\Script.ps1"