2013-04-22 20 views
6

Mam kilka skryptów powershell, które uruchamiają się z kodu C#.

Działają nieinteraktywnie i nie ma możliwości potwierdzenia żadnego polecenia.

PowerShell, możemy ustawić ErrorActionPreference globalny z $ErrorActionPreference = "Stop"

Czy istnieje taki sam sposób ustawić na każdym poleceniu parametr potwierdzić do $ false, jeśli taka istnieje?

Odpowiedz

4

Można spróbować z:

$ConfirmPreference = "None" 

Czytaj here

+0

+1, działa idealnie, dzięki bardzo :) – Solaflex

0

Można sprawdzić, czy obsługuje polecenia Potwierdź i ustawić go przy użyciu splatting:

$param = @{} 
if((Get-Command Enable-PSRemoting).Parameters.Confirm) {$param.Confirm=$false} 

Enable-PSRemoting @param 

W PowerShell 3.0 można użyć Zmienna $ PSDefaultParameterValues:

$PSDefaultParameterValues["*:Confirm"]=$false 
+0

Ale z twojej drodze, muszę zrobić ten kod na każdej komendzie , ale chcę, żeby było to ustawienie globalne, jak już powiedziałem. – Solaflex

+0

Dla wersji 3.0 to nie tylko: '$ PSDefaultParameterValues ​​[" confirm "] = $ false'? lub '$ PSDefaultParameterValues ​​= @ {" *: confirm "= $ false}' –

+0

@Solaflex Myślałem, że chcesz "ustawić każde polecenie", moje złe. –

1

Spójrz here

Można ustawić globalne zachowanie z

$ConfirmPreference = "None"/"Low"/"High"