W PowerShellu nieco inaczej zaimplementowano obsługę uruchamiania programów niż zrobiono to w Wierszu polecenia. Czasami działanie obu programów jest identycznie, ale na ogół PowerShell zachowa się nieco inaczej.
Chesz przetestować działanie poniższych instrukcji, a nie masz dostępu do serwera Linuxowego? Po rejestacji na DigitalOcean otrzymasz 100 dolarów do wykorzystania w ciągu 60 dni, a z przyjaznym interfejsem uruchomisz ulubioną dystrybucję w ciągu paru minut.
Owe różnice zależą od tego czy ścieżka do programu zawarta jest w zmiennej PATH
oraz jego relatywne położenie między aktualnie wybranym katalogiem. Warto wspomnieć, że używanie klawisza tab w celu automatycznego uzupełniania ścieżek bądź nazw programów automatycznie rozwiązuje potencjalne problemu.
Dla większej czytelności w przykładach wycięto sporą część komunikatów jakie są wyświetlane na ekranie.
Ścieżka do programu jest w zmiennej PATH
W sytuacji gdy uruchamiany jest program którego ścieżka znajduje się w opisanej niedawno zmiennej PATH wystarczy jedynie wpisać nazwę pliku wykonywalnego.
PS C:\> ping
Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS]
[-r count] [-s count] [[-j host-list] | [-k host-list]]
[-w timeout] [-R] [-S srcaddr] [-c compartment] [-p]
[-4] [-6] target_name
...
PS C:\>
Program znajduje się w aktualnym katalogu
Jeżeli plik wykonywalny znajduje się w aktualnym katalogu tradycyjne użycie jego nazwy spowoduje wyświetlenie błędu oraz sugestię by dopisać .\
przed nazwą pliku. Wtedy PowerShell zorientuje się, że chodzi o plik znajdujący się w aktualnym katalogu.
PS C:\Program Files\7-Zip> .\7z
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Usage: 7z [...] [...] [@listfile]
(...)
PS C:\Program Files\7-Zip>
Podanie pełnej ścieżki do katalogu
Ostatnim wariantem jest sytuacja gdy trzeba podać pełną nazwę do pliku wykonywalnego. Na ogół można spodziewać się, że będzie ona zawierała spacje i konieczne będzie ujęcie jej w cudzysłowach lub apostrofach.
Jednakże PowerShell po naciśnięciu klawisza enter zinterpretuje go jako ciąg znaków i wypisze jego zawartość w konsoli. Aby wymusić potraktowanie go jako ścieżki do pliku wykonywalnego trzeba na samym początku dopisać &
.
PS C:\> & 'C:\Program Files\7-Zip\7z'
7-Zip 19.00 (x64) : Copyright (c) 1999-2018 Igor Pavlov : 2019-02-21
Usage: 7z [...] [...] [@listfile]
(...)
PS C:\>
Skomentuj