Probleme mit den Powershell-Start-Prozess-Parametern


3

Wahrscheinlich eine totale Noob-Frage, aber:

Wenn ich renne

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

Ich bekomme den Fehler

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

Aber alles von:

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

Arbeit gut ... was fehle ich?

Antworten:


5
Get-Command -syntax Start-Process

gibt zwei Einträge an (manuelles Umbrechen hinzugefügt und Entfernen gemeinsamer Parameter):

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>]

Geben Sie in Ihren Arbeitsfällen entweder an -RedirectStandardOutput oder -WindowStyle Identifiziert eindeutig, welcher Parametersatz verwendet werden soll.

In Ihrem nicht funktionierenden Fall haben Sie beide dieser Parameter, aber es gibt keinen Parametersatz, der beide hat, daher kann PSH keinen auswählen.


Ahhh ich verstehe. Danke ... also keine Möglichkeit, in einem versteckten Fenster zu laufen und die Ausgabe dann umzuleiten, oder?
JimmyP

@JimmyP: Nicht mit dem Cmdlet (direkte Verwendung von [System.Diagnostics.Process] ermöglicht mehr Kontrolle, aber unklar, wie einfach die Umleitung auf dieser Ebene in PSH ist. Natürlich ist die Kombination von Standardausgabe und GUI in sehr selten Windows ...
Richard
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.