Windows 批处理相当于 Linux Bash 中的“命令”

Windows 批处理相当于 Linux Bash 中的“命令”

在 linux bash 中,有一个command命令可以执行“真实”命令,即使你有一个与该命令同名的函数名或脚本文件名。

function ping(){
    echo do nothing
}
command ping

仍可工作。

在 Windows 批处理中,我有一个文件,如果我在该文件内部ping.cmd运行,它就会进入循环。ping

commandWindows 批处理中的等效项是什么?

答案1

答案 1:没有,因为Windows 批处理甚至没有与 bash 类似的功能。它只有使用与常规命令不同的语法的子程序 - pingvs call :ping- 因此不需要覆盖。

如果您仔细阅读文档,command只会跳过别名和函数,但对 $PATH 中的脚本不执行任何操作。在两个 shell 中,如果你使用真实的脚本文件进行覆盖,找到“真正的”命令取决于你。

答案 2:为了避免你描述的循环,您需要指定全名的“ping”。

  • 对于 bash 来说,这意味着调用/bin/ping,或者循环 $PATH 直到找到它。

  • 在 Windows 上,存在相同的选项;但是,由于您的脚本实际上被调用ping.batping.cmd,因此您可以跑步ping.exe以避免循环。

相关内容