我是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 - 开括号支架的无效字符错误。我试过逃避两个括号,但我仍然得到同样的错误。
答案 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
'****************************************************************