Ответ 1: Нет, потому что пакет Windows даже не имеет таких функций, как bash. Он имеет только подпрограммы, которые используют синтаксис, отличный от обычных команд - ping vs call :ping - поэтому нет необходимости переопределять.
Если вы читаете документацию более внимательно, command пропускает только псевдонимы и функции, но ничего не делает со скриптами в $ PATH. В обеих оболочках, если вы переопределяете с помощью реального файла сценария, вам нужно найти "настоящую" команду.
Ответ 2: Чтобы избежать цикла, который вы описали, вам нужно указать полное имя "ping".
С bash это будет означать вызов /bin/ping , или, возможно, циклический переход по $ PATH, пока вы его не найдете.
В Windows такие же параметры существуют; однако, поскольку ваш скрипт на самом деле называется ping.bat или ping.cmd , вы можете запустить ping.exe чтобы избежать зацикливания.