如何从powershell运行程序



我正试图从powershell运行一个简单的命令,但与往常一样,powershell什么都不起作用。

无论我尝试了多少不同的引号,我都无法让它发挥作用。

PS> Measure-Command { C:Program Files (x86)Microsoft Visual Studio2019ProfessionalCommon7IDEdevenv.exe test.sln /Build } 

等命令行

C:Program Files (x86)Microsoft Visual Studio2019ProfessionalCommon7IDEdevenv.exe test.sln /Build

任何shell中都不起作用,因为由于包含空格路径所必需的可执行路径周围缺少引号,将导致C:Program被解释为可执行路径。换句话说:引用这样的路径是必须的

特定于PowerShell的是需要使用&,无论何时可执行路径被引用和/或包含变量引用/表达式,都需要使用调用运算符(这是本答案中解释的纯粹语法要求;如果您不想考虑何时需要&,则可以始终使用它(。

此外,正如您自己所发现的,对于同步的、基于控制台的操作,您必须调用devenv.com,而不是devenv.exe[1]

因此:

Measure-Command { 
& 'C:Program Files (x86)Microsoft Visual Studio2019ProfessionalCommon7IDEdevenv.com' test.sln /Build 
} 

注意,由于路径为literalone(没有变量引用/表达式(,因此优选使用single-quoting('...'(;有关PowerShell中字符串文字的详细信息,请参阅此答案的底部部分。


[1]如果您需要同步调用GUI-子系统应用程序(等待它退出(-默认情况下异步运行-请使用Start-Process-Wait

最新更新