这可能是一个完全新手的问题,但是:
当我跑步时
Start-Process ".\packages\PS-Get.0.1.0.0\NuGet.exe" update -RedirectStandardOutput ".\packages\PS-Get.0.1.0.0\NuGet.exe.Update.log" -RedirectStandardError ".\packages\PS-Get.0.1.0.0\NuGet.exe.Update.log" -WindowStyle Hidden
我得到了错误
Start-Process : Parameter set cannot be resolved using the specified named parameters.
At line:1 char:14
+ Start-Process <<<< ".\packages\PS-Get.0.1.0.0\NuGet.exe" update -RedirectStandardOutput ".\packages\
PS-Get.0.1.0.0\NuGet.exe.Update.log" -RedirectStandardError ".\packages\PS-Get.0.1.0.0\NuGet.exe.Update.log" -WindowStyle Hidden
+ CategoryInfo : InvalidArgument: (:) [Start-Process], ParameterBindingException
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand
但所有:
Start-Process ".\packages\PS-Get.0.1.0.0\NuGet.exe" update -RedirectStandardOutput ".\packages\PS-Get.0.1.0.0\NuGet.exe.Update.log"
Start-Process ".\packages\PS-Get.0.1.0.0\NuGet.exe" update -RedirectStandardError ".\packages\PS-Get.0.1.0.0\NuGet.exe.Update.log"
Start-Process ".\packages\PS-Get.0.1.0.0\NuGet.exe" update -WindowStyle Hidden
工作正常...我遗漏了什么??
答案1
Get-Command -syntax Start-Process
给出两个条目(添加手动包装并删除通用参数):
Start-Process [-FilePath] <String>
[[-ArgumentList] <String[]>]
[-Credential <PSCredential>]
[-WorkingDirectory <String>]
[-LoadUserProfile] [-NoNewWindow] [-PassThru]
[-RedirectStandardError <String>] [-RedirectStandardInput <String>]
[-RedirectStandardOutput <String>] [-Wait] [-UseNewEnvironment]
Start-Process [-FilePath] <String>
[[-ArgumentList] <String[]>]
[-WorkingDirectory <String>]
[-PassThru]
[-Verb <String>] [-Wait]
[-WindowStyle <ProcessWindowStyle>]
在您的工作案例中,指定-RedirectStandardOutput
或-WindowStyle
唯一标识要使用的参数集。
在非工作情况下,您拥有这两个参数,但没有同时具有这两个参数的参数集,因此 PSH 无法选择其中一个。