umieść prosty plik .cmd w moim podfolderze z moim plikiem .ps1 o tej samej nazwie, więc na przykład skrypt o nazwie „foobar” będzie miał „foobar.ps1” i „foobar.cmd”. Aby uruchomić plik .ps1, wszystko, co muszę zrobić, to kliknąć plik .cmd w eksploratorze lub uruchomić .cmd z wiersza poleceń. Używam tej samej nazwy podstawowej, ponieważ plik .cmd automatycznie wyszuka plik .ps1, używając własnej nazwy.
::====================================================================
:: Powershell script launcher
::=====================================================================
:MAIN
@echo off
for /f "tokens=*" %%p in ("%~p0") do set SCRIPT_PATH=%%p
pushd "%SCRIPT_PATH%"
powershell.exe -sta -c "& {.\%~n0.ps1 %*}"
popd
set SCRIPT_PATH=
pause
Pushd / popd umożliwia uruchomienie pliku .cmd z wiersza poleceń bez konieczności przechodzenia do określonego katalogu, w którym znajdują się skrypty. Nastąpi przejście do katalogu skryptów, a po zakończeniu wróć do oryginalnego katalogu.
Możesz także wyłączyć pauzę, jeśli chcesz, aby okno poleceń zniknęło po zakończeniu działania skryptu.
Jeśli mój skrypt .ps1 ma parametry, pytam o nie za pomocą monitów GUI za pomocą formularzy .NET, ale także dostosowuję skrypty do akceptowania parametrów, jeśli chcę je zamiast tego przekazać. W ten sposób mogę kliknąć go dwukrotnie w Eksploratorze i nie muszę znać szczegółów parametrów, ponieważ zapyta mnie o to, czego potrzebuję, z polami listy lub innymi formularzami.