Prawidłowa odpowiedź to „ping /?” ponieważ w wierszu polecenia systemu Windows przełącznik „/? ” jest standardowym sposobem wyświetlania pomocy dla danego polecenia. Dotyczy to nie tylko ping, ale praktycznie wszystkich podstawowych narzędzi konsolowych w Windows, takich jak ipconfig, tracert, netstat, robocopy, tasklist i wiele innych. Mechanizm jest prosty: wpisujesz nazwę programu, spację, potem „/? ” i otrzymujesz listę wszystkich dostępnych opcji, przełączników, krótkie opisy ich działania oraz przykłady użycia. Z mojego doświadczenia to jedna z pierwszych rzeczy, jakie warto zapamiętać, ucząc się pracy w CMD. W przypadku ping wyświetlenie „ping /?” pokaże między innymi takie parametry jak: „-t” (ciągłe pingowanie aż do przerwania), „-n” (liczba wysyłanych pakietów), „-l” (rozmiar bufora), „-4” i „-6” (wymuszenie IPv4 lub IPv6), „-w” (timeout w milisekundach) czy „-a” (odwrotne wyszukiwanie nazwy hosta). Dzięki temu nie trzeba pamiętać wszystkich opcji na pamięć, tylko w razie potrzeby szybko podejrzeć je w systemie. W praktyce administratorzy i technicy sieciowi bardzo często korzystają z „/? ” przy diagnozowaniu problemów, bo różne wersje Windows mogą mieć drobne różnice w dostępnych przełącznikach. To też zgodne z dobrą praktyką: zanim użyjesz nowego przełącznika, sprawdź wbudowaną pomoc i opis działania. W pracy z sieciami, gdy używasz ping do testowania dostępności hostów, opóźnień czy podstawowej diagnostyki, znajomość opcji z „ping /?” pozwala dużo precyzyjniej dobrać parametry testu, zamiast ograniczać się do domyślnego prostego pingowania bez żadnych przełączników.
W wierszu polecenia Windows obowiązują dość konkretne konwencje dotyczące tego, jak wywołuje się pomoc i jak działają operatory przekierowań czy potoków. Jeśli ktoś wpisze „ping >?” lub „ping |?” albo „ping \?”, to widać tu typowe pomieszanie tych pojęć. Z jednej strony użytkownicy kojarzą, że pytajnik oznacza pomoc, z drugiej strony znają znaki „>”, „|” czy „\” z różnych kontekstów i próbują je łączyć na wyczucie. W Windows CMD do wyświetlania pomocy służy przełącznik „/? ”, a nie kombinacje z operatorami przekierowania. Z technicznego punktu widzenia znak „>” w CMD oznacza przekierowanie wyjścia do pliku. Gdyby system potraktował „?” jak nazwę pliku, komenda „ping >?” próbowałaby zapisać wynik działania ping do pliku o nazwie „?”. To nie ma nic wspólnego z wywoływaniem opcji programu, tylko z mechanizmem obsługi strumieni wejścia/wyjścia. Podobnie znak „|” to operator potoku – przekazuje wyjście jednego programu na wejście drugiego. Polecenie w stylu „ping |?” byłoby próbą podania wyniku ping jako wejścia do programu o nazwie „?”. Taki program oczywiście nie istnieje, więc efekt będzie błędem, a nie listą opcji. Z kolei odwrotny ukośnik „\” w Windows jest przede wszystkim separatorem w ścieżkach do folderów i udziałów sieciowych, natomiast w składni przełączników linii poleceń praktycznie się go nie używa. Wiele osób intuicyjnie miesza go ze zwykłym ukośnikiem „/”, który w Windows tradycyjnie oznacza przełącznik (w przeciwieństwie do systemów Linux/Unix, gdzie używa się „-”). Stąd pomysł na „ping \?” – wygląda podobnie, ale jest składniowo błędny. Dobra praktyka w pracy z CMD jest taka: jeżeli nie pamiętasz opcji, najpierw spróbuj „polecenie /?” i przeczytaj wbudowaną pomoc, zamiast eksperymentować z dziwnymi kombinacjami znaków. To oszczędza czas i uczy standardowego sposobu korzystania z narzędzi systemowych, co potem bardzo ułatwia naukę kolejnych komend sieciowych, takich jak tracert, ipconfig czy netstat.