在VB.NET中运行Powershell命令的问题1

时间:2015-09-21 17:33:34

标签: vb.net powershell windows-10

我想从我的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填充红色文本。在我可以阅读任何内容之前,窗口关闭。我已多次检查代码和命令。但仍然不知道为什么不同的结果为同一个命令。

1 个答案:

答案 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.

这显然不是完全相同的行为,但类似的东西可能导致问题。