2010-12-27 15 views
8

verir koduStart-Süreç Burada hata

$tool = "E:\Experiments\Popup\latest\xperf.exe" 
$toolOutput = "XPerfOutput.log" 
$toolError = "XPerfError.log" 
$command = "-stop" 


$x = Start-Process -FilePath $tool -ArgumentList $command -RedirectStandardOutput $toolOutput -RedirectStandardError $toolError -WindowStyle Hidden -PassThru -Wait 

var Ve İşte orada hata var:

Start-Process : Parameter set cannot be resolved using the specified named parameters. At E:\Experiments\Popup\asd.ps1:9 char:1 
+ Start-Process -FilePath $tool -ArgumentList $command -RedirectStandardOutput $toolOutput RedirectStandardError $toolError -WindowStyle Hidden 
-PassThru -Wait 
+ ~~~~~~~~~~~~~ 
+ CategoryInfo   : InvalidArgument: (:) [Start-Process], ParameterBindingException 
+ FullyQualifiedErrorId : AmbiguousParameterSet,Microsoft.PowerShell.Commands.StartProcessCommand 

Ben, gizli bir pencerede işlemini çalıştırmak geri dönmek ve hatayı almak için beklemek istiyorum , çıkış ve çıkış kodu.

+0

$ XPerfFolder'ın değeri nedir? $ XPerfFolder'ı "C: \ Experiment \ ...." ile birleştiriyorsunuz. XPerfFolder boş olmadığı sürece hiç mantıklı değil. –

+0

şimdi burada sabit. Kod iyidir –

+0

Hatalar söz konusu olduğunda, belirli EXE kötü huyludur. Ben stderr yazmak yerine UI pop eğilimindedir fark ettim. –

cevap

11

documentation for Start-Process'a göre, yeniden yönlendirme parametrelerinin (RedirectStandardOutput ve RedirectStandardError) ve WindowStyle parametresinin kombinasyonu, ayrı ayrı parameter sets'da bulunduğundan geçersizdir.

Bu, birlikte kullanılamadıkları anlamına gelir. Bu yüzden bu hatayı alıyorsunuz.

+0

@ scott-saad tamam, nasıl hata ve çıkış yakalayacağım? –

+3

Ne yazık ki düzeltme, -WindowStyle Gizli'yi kaldırmaktır. Bunun nedenini araştırmak ve mümkünse düzeltmek için buna karşı bir hata yapacağım. –