3

我正在尝试在 Windows 中运行此命令:

ping -n 5 127.0.0.1 > nul

我得到错误:

'ping' is not recognized as an internal or external command operable 
program or batch fie. 

为什么windows找不到ping? 这是我的脚本不起作用的地方:

@ECHO OFF

::set path
SET path=M:\\5.bmp

:findfile
IF EXIST %path% (
    ECHO File found
) ELSE (
    ECHO File not found
    ping -n 5 127.0.0.1 > nul
    goto findfile
)
4

3 回答 3

6

您已覆盖PATH环境变量,因此命令处理器无法再找到ping可执行文件。

修复很简单 - 只需使用不同的变量名!

:: set path
SET MyPath=M:\\5.bmp

:findfile
IF EXIST %MyPath% (

请注意,如果您真的想设置path环境变量,您应该像这样附加它:

REM Set temporarily for this session
SET PATH=%PATH%;C:\Some\Folder

REM Set permanently (but note - this change will not be made to this session)
SETX PATH=%PATH%;C:\Some\Folder
于 2013-02-26T12:19:29.847 回答
5

您好要修复“ping”,请按照以下步骤操作

转到我的电脑中的属性

高级系统设置 -----> 高级 -----> 环境变量 从系统变量列表中选择 'PATH' 并编辑并将 PATH 设置为 c:\windows\system32 ;这将解决您的问题。

-----> 如果仍然有问题,请执行以下步骤...

控制面板 --> 系统和安全 --> Windows 防火墙 --> 高级设置 --> 入站规则 --> 新规则 --> 自定义规则

在协议和端口:协议:ICMPv4在同一面板上去自定义,选择“特定ICMP类型”,勾选框“回声请求”

其余的都是微不足道的;转到下一个...下一个...并保存。

你应该完成了。此框从此时开始响应 ping。

干杯

普拉萨德

于 2013-07-01T09:37:52.063 回答
1

如何诊断此错误:

'ping' is not recognized as an internal or external command operable 
program or batch fie. 

因为您的path环境变量不包含指向可执行文件的目录:ping.exe. 所以问题就变成了为什么你的命令行程序cmd.exe找不到ping.exe

您可以像这样在命令行上打印出路径变量:

echo %PATH%

为我打印:

C:\WINDOWS;C:\WINDOWS\system32;C:\Program Files\jZip;C:\MinGW\bin

上面的字符串由分号(;)分隔。请注意名为:C:\WINDOWS\System32的元素,该元素定义了 ping.exe 的位置。

解决方案

  1. 您没有在路径变量中指定 C:\WINDOWS\System32。确保它在那里。
  2. ping.exe 丢失。找出谁删除了它并将其放回原处。
  3. ping.exe 已损坏。在它所在的地方运行它:C:\WINDOWS\System32\ping.exe,或替换ping.exe.
  4. 在查找它之前,您已经覆盖了 PATH 变量。
于 2013-04-09T14:45:13.497 回答