将参数传递给 powershell 的子进程,它本身就是一个标志

将参数传递给 powershell 的子进程,它本身就是一个标志
start-process npm -verb runas -args @("install", "-g", "coffee-script")

这是向子进程传递参数的最直接方法吗?它似乎很冗长!

答案1

嗯,PowerShell 本质上是冗长的,这是一件好事 - 它使代码更容易理解。

可以使用别名和短参数名称来缩短您的示例:

start npm -verb runas -a 'install', '-g', 'coffee-script'

如果不需要Runas动词,它可以更短:

&'npm' 'install', '-g', 'coffee-script'

如果您使用的是 PowerShell v3,则有一项新的语言功能可以简化很多操作。您不必费尽心思使用转义和引号参数来避开 PowerShell 解析器,现在可以使用运算--%符告诉 PowerShell 从该点开始停止解析直到行末:

&'npm' --% install -g coffee-script

参考:

相关内容