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