在VBScript文件中调用PowerShell脚本时,如何使用嵌套引号?

时间:2016-06-13 18:57:13

标签: powershell vbscript

我是VBScript和PowerShell的新手。我有一个PowerShell脚本,当我从命令行调用它时,它运行正常。但是,当我尝试从VBScript调用它时,它会运行但什么都不做。

我在CLI上使用的命令是

powershell.exe -nop -exec bypass -noni -command "& { . C:\<censored path>\testscript1.ps1; Get-Test }"

这很有效。当我运行以下vbscript代码时,我没有得到任何结果

Set objShell = CreateObject("Wscript.shell")
objShell.run("powershell.exe -nop -exec bypass -noni -command &""& { . C:\<censored path>\testscript1.ps1; Get-Test }" &"")

我做错了什么?

PS:将我的命令缩减至:

objShell.run("powershell.exe -nop -exec bypass -noni -command "& { . C:\<censored path>\testscript1.ps1; Get-Test }" ")

我得到一个代码800A0408 - 开括号支架的无效字符错误。我试过逃避两个括号,但我仍然得到同样的错误。

1 个答案:

答案 0 :(得分:2)

你可以尝试这样的事情:

PSCommand = "powershell.exe -nop -exec bypass -noni -command" & DblQuote("& { . C:\<censored path>\testscript1.ps1; Get-Test }")&""
MsgBox PSCommand 
set objShell = CreateObject("wscript.shell")
objShell.Run PSCommand
'****************************************************************
Function DblQuote(Str)
    DblQuote = Chr(34) & Str & Chr(34)
End Function
'****************************************************************