为什么“ipconfig”不被识别为内部或外部命令?

为什么“ipconfig”不被识别为内部或外部命令?

使用 Windows 7,在我的其中一台机器上,输入“ipconfig”不再有任何作用。

是否有一个原因?

我的猜测是,这与 Java SDK 安装/更改系统变量有关。

命令和响应:

C:\Users\Paul>ipconfig

‘ipconfig’ 不被识别为内部或外部命令、可运行程序或批处理文件。

我的PATH

C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;
C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;
C:\Program Files (x86)\MiKTeX 2.8\miktex\bin;
C:\Program Files (x86)\Windows Live\Shared;
C:\Program Files\Common Files\Microsoft Shared\Windows Live;
C:\Program Files\Java\jdk1.6.0_22\bin;
c:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\Tools\Binn\;
c:\Program Files\Microsoft SQL Server\100\DTS\Binn\;
C:\Program Files (x86)\QuickTime\QTSystem\;
C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;
C:\Program Files (x86)\MATLAB\R2007b\bin;
C:\Program Files (x86)\MATLAB\R2007b\bin\win32;
C:\Program Files (x86)\Common Files\Autodesk Shared\;
C:\Program Files (x86)\Autodesk\Backburner\;
C:\Program Files\Common Files\Autodesk Shared\

答案1

我想如果路径语句中缺少 C:\Windows\System32,ipconfig 无法运行将是你最不用担心的事情。

C:\Windows\System32 包含大量允许 Windows 运行的可执行文件和动态链接库 (DLL)。

系统路径设置中的条目告诉计算机在指定位置查找程序所引用的可执行文件和文件。

虽然看起来一个好的程序不会依赖于 Path 变量而应该直接引用它所依赖的任何文件的位置,但是 Path 语句允许多个相似的操作系统共存于同一个驱动器上(Windows XP 位于 C:\WinXP\ 文件夹中,Windows 7 位于 C:\Win7\ 中,等等,这会导致不同的且不兼容的 .\System32\ 目录),并允许更轻松、更灵活地升级框架文件(在安装它们的版本化目录中查找最新版本的 .Net 库,而不是在可能以不理想的方式相互覆盖的中央目录中查找)。

因此,想要使用 Windows XP 内置 zip 处理功能的程序将调用 zipfldr.dll,操作系统将返回存储在 C:\Windows\System32\zipfldr.dll 中的可执行文件的功能。如果您查看该目录,您应该会看到许多文件,您可能会认出它们是常见的脚本命令或对操作系统操作至关重要的功能。

我从来没有从我的路径语句中删除 C:\Windows\System32 条目,而且我认为我永远也不会这样做(尽管我认为在具有回滚功能的 VM 中测试这个应该不会太难),所以我不能肯定地说如果它完全丢失会发生什么。

可以这么说,几乎任何批处理脚本都将完全无法运行,并且操作系统的功能将受到严重限制。

其他人已经指出了如何在缺少 C:\Windows\System32 的情况下将其添加到 Path 语句中,因此我不再重复。但如果这里还有其他问题,我不会感到惊讶,因为这是您发现的唯一不起作用的功能。

答案2

这确实可能归结于系统变量。

  • 右键点击我的电脑在“开始”菜单或桌面上,然后单击特性
  • 选择高级系统设置->高级
  • 点击环境变量...按钮
  • 查找名为小路并点击它
  • 点击编辑...按钮
  • 它应该是一个长字符串,其中多个路径由分号分隔;
  • 检查它包含目录:\Windows\system32(我假设你的系统驱动器是C
  • 如果您不确定它是否正确,那么您可能需要复制它并将其发布到这里。
  • 如果你进行了更改,可能需要重新启动才能看到效果

如果这没有帮助,那么打开你的目录:\Windows\system32目录并确保它包含IP配置工具。如果没有,那么我猜你一定是缺少系统文件。

答案3

我添加了同样的问题,但是当我在命令行(cmd.exe)中输入以下内容

回显 %PATH%

确实%SystemRoot%\system32存在。

我读到过一些文章说该问题可能是由 PATH 变量定义中的分号后面的空格引起的,但对我来说情况并非如此。

当我发现我的 PATH 项之一是%SYSTEMROOT%而不是%SystemRoot%(区分大小写)时,我的问题就解决了

答案4

还需检查另一件事,这也是我的问题所在:PATHEXT 环境变量。

我已将用户环境变量 PATHEXT 设置为“*.LNK”,以尝试在命令行中获取快捷方式文件而无需键入扩展名,但这只是隐藏了系统环境变量 PATHEXT=".COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC",而不是向其添加内容。因此,找不到 ipconfig.exe。将用户级 PATHEXT 设置为扩展名的完整列表可以解决此问题。

相关内容