Jest też inny sposób. Możesz użyć zmiennej automatycznej $PSDefaultParameterValues
, która istnieje (od wersji v3), aby dostarczyć nowe domyślne argumenty do poleceń cmdlet i zaawansowane funkcje (nie działa z normalnymi funkcjami). Jednak działa on dla skryptów, nawet podczas debugowania w ISE.
Tak dla przykładu,
param ($G_ARCHIVE = $(throw "Need file to upload!"),
$G_LOGFILE = $(throw "Need logfile!"))
byś wykonać coś takiego na wierszem ISE:
$PSDefaultParameterValues.add("ExampleScript.ps1:G_ARCHIVE","File-to-upload.txt")
$PSDefaultParameterValues.add("ExampleScript.ps1:G_LOGFILE","Example.log")
Można również ustawić wartość parametru w bloku skryptu, który będzie automatycznie wykonać w czasie wykonywania:
$PSDefaultParameterValues["ExampleScript.ps1:G_LOGFILE"]={
"Example-{0:yyMMddHHmm}.log" -f [datetime]::Now
}
Zmienna to hashtable i wszystkie standardowe aplikacje składniowe z wyjątkiem klucz musi mieć nazwę skryptu (lub funkcji zaawansowanej lub cmdlet), a następnie dwukropek, a następnie nazwę parametru. Można ustawić wartości domyślne dla wielu skryptów lub poleceń oraz wiele parametrów dla każdego (każdy parametr jest nowym wpisem do tabeli).
Robiąc to w ten sposób, możesz po prostu nacisnąć F5, aby uruchomić skrypt jak normalnie. Parametry zostaną pobrane ze zmiennej, więc nie musisz niczego wpisywać.
Inne przypadki użycia dla $PSDefaultParameterValues
mogą być dostosowaniami, np. Czy Get-History ma tylko 10 ostatnich wpisów, chyba że określisz -Count
parametr w komendzie. Ponieważ wpisy dotyczą tylko bieżącej sesji, warto dodać dostosowania do swojej profile.Możesz przeczytać więcej, wpisując Get-Help about_Parameters_Default_Values
w monicie lub wyświetlić te same informacje na TechNet.
To podejście nie działało dla mnie, ponieważ mój plik zawierał spacje, rozwiązanie polegało na użyciu funkcji "ampersand-function" w następujący sposób: PS C: \ Windows> & ("c: \ my folder \ script" .ps1 ") -myArg 123 -anotherArg abc –
Możesz właściwie użyć ścieżki względnej:. \ script.ps1 –