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