我有一行来调用一个powershell脚本,它可以工作,但PowerShell窗口会在没有工作的情况下关闭。
代码是什么想法?
另外我希望它能够运行.bat文件(我试过Shell(& pathcrnt&" \ GUI-getuserpropertiesV2.10.ps1"& pathcrnt)我得到的相同错误。
Sub CallBatch()
Dim pathcrnt As String
pathcrnt = ActiveWorkbook.Path
Shell ("PowerShell " & pathcrnt & "\GUI-getuserpropertiesV2.10.ps1" & pathcrnt)
End Sub
答案 0 :(得分:1)
请参阅以下链接,确保您拥有本机的权限。
http://www.tek-tips.com/viewthread.cfm?qid=1585510
我不了解您的设置或安全性,因此如果您遇到错误,请搜索“PS权限”或其他内容。 VBA脚本肯定会有效!
答案 1 :(得分:1)
如果您在.ps1
之后插入一个空格,它应该有效:
Sub CallBatch()
Dim pathcrnt As String
pathcrnt = ActiveWorkbook.Path
Shell "PowerShell " & pathcrnt & "\GUI-getuserpropertiesV2.10.ps1 " & pathcrnt
End Sub
想象一下结果字符串;对于pathcrnt C:\Windows
,它将是:"PowerShell C:\Windows\GUI-getuserpropertiesV2.10.ps1C:\Windows"
您也可能希望用双引号括起路径元素,以防止空格弄乱您的参数,如下所示:
Shell "PowerShell """ & pathcrnt & "\GUI-getuserpropertiesV2.10.ps1"" """ & pathcrnt & """"
由于双引号也是VBA中的字符串分隔符,因此必须使用另一个双引号来转义它们。