Windows_PowerShell_iconniektóre skrypty powinny pozwolić na dodanie wyboru akcji w trakcie przetwarzania – typu ‚wykonanie akcji A, naciśnij ‚A’, akcja B, naciśnij ‚B’, wyjdź ‚W”… ogólnie należy unikać takiego kodu ale czasem chcemy zrobić skrypt ‚miły’, user-friendly. metod jest kilka, a im bardziej user-friendly tym mniej uniwersalna.

źle

najładniejszą będzie oczywiście dodanie formatki GUI. formatka GUI wymaga bibliotek graficznych. znaleźć można różne wynalazki, z których najśmieszniejszy to korzystanie z WSH O_o’  [ nieznoszę takich frankensteinów]. .NET zawiera oczywiście odpowiednie klasy, można więc skorzystać z klasy System.Windows.Forms.Messagebox – tutaj praktyczny przykład. podstawowe wady tej metody to: wymaga bibliotek Forms, czyli nie zadziała na wersjach Core, oraz nie zadziała w sesjach zdalnych (remoting).

lepiej

inną metodą jest zwykły ReadKey. trzeba niemniej uważać na sposób jego wywołania. najprostsza metoda wywali się w sesji zdalnej:

można zatem użyć metody z obiektu host:

ta jednak metoda wymaga, aby host ją obsługiwał, czyli nie zadziała np. w ISE.

najlepiej

najbardziej natywny ‚PowerShell’ to wykorzystanie metody PromptForChoice obiektu Host.UI, z którego korzystają commandlety. Dzięki temu zachowany jest spójny ‚user-experience’, a metoda zadziała w sesji zdalnej, ISE, konsoli itp, itd [w ISE wyświetli okienko (: ]:

[kod z Technet]

eN.