如果满足特定条件,我将尝试使用Excel VBA宏启动PowerShell脚本。我不会在代码运行时出现任何错误,并且能够从Windows资源管理器窗口手动运行PowerShell脚本而不会出现错误。但是,当我执行以下VBA代码时,PowerShell无法运行,我不确定为什么。
Dim x as Variant
If rs.RecordCount = 0 Then
x = Shell("POWERSHELL.exe " & "H:\MyFolder\MyFile.ps1", 1)
End If
我无法确定VBA代码中是否有错误,因为我没有遇到任何运行时错误,但PowerShell脚本实际上并未运行
更新:使用多余的引号,我现在可以看到在cmd窗口中弹出的错误消息,但是即使使用多余的引号,它仍然存在空间问题。我已将脚本移到没有空格的其他文件路径,但是现在看到正在运行的脚本被禁用的错误。看来这不再是基于代码的问题。谢谢大家!
答案 0 :(得分:2)
如果文件路径中有空格,则需要在其两边加上引号。
x = Shell("POWERSHELL.exe -noexit " & _
"""H:\Operations\REPORTS\Reports2018\Balance Sheet\SLmarginJE.ps1""", 1)