我想从我的vb.net程序运行PowerShell命令。我运行命令的方式是:
Shell("powershell.exe Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register ""$($_.InstallLocation)\AppXManifest.xml""}", AppWinStyle.NormalFocus, True)
实际命令是:
Get-AppXPackage | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"}
当我复制上面的命令并将其粘贴到PowerShell中时,它可以正常工作。但是,当我使用代码(Shell)运行相同的命令时,会发生一些错误。 PowerShell填充红色文本。在我可以阅读任何内容之前,窗口关闭。我已多次检查代码和命令。但仍然不知道为什么不同的结果为同一个命令。
答案 0 :(得分:0)
该命令如何被解释可能会导致问题。您可以尝试通过添加-command
开关并引用命令在命令行中更明确地修复它。
Shell("powershell.exe -command ""Get-AppXPackage | ...""", ...)
作为一个例子。尝试从cmd.exe运行以下命令:
C:\>powershell dir c:\ | select Name
'select' is not recognized as an internal or external command, operable program or batch file.
但是如果你使用-command
那么问题就会消失。
C:\>powershell -command "dir c:\ | select Name"
Name
----
Debug
etc.
这显然不是完全相同的行为,但类似的东西可能导致问题。