在 Windows 8.1 上为 CMD 设置系统路径:尝试覆盖 Windows/System32/find.exe

Posted

技术标签:

【中文标题】在 Windows 8.1 上为 CMD 设置系统路径:尝试覆盖 Windows/System32/find.exe【英文标题】:Set system path for CMD on Windows 8.1: Trying to override Windows/System32/find.exe 【发布时间】:2014-08-12 03:02:17 【问题描述】:

我正在尝试覆盖 Windows find 命令,以便可以调用 find 的另一个实现。另一个实现由 MSYS 提供,位于 C:\MinGW\msys\1.0\bin。在 Windows 7 上,我可以打开一个 CMD,然后运行:

SET PATH=C:\MinGW\msys\1.0\bin;%PATH%

由于在 C:\Windows\System32\ 路径之前添加了 MSYS 路径的前缀,因此在 Windows 7 上的 CMD 中调用 find 时,将执行 MSYS 版本。

该命令不适用于 Windows 8.1。当我在 Windows 8.1 上的 CMD 中调用 find 时,无论我做什么,它都默认为 Windows 实现。有没有办法在 Windows 8.1 上覆盖它?

我正在寻找一种只改变当前CMD实例的路径信息的解决方案。出于我的目的,我宁愿不必使用 powershell(即使路径设置在 powershell 中按预期工作)。

谢谢!

【问题讨论】:

在 Windows 8.1 框中输入 where find 时会显示什么?输入c:\mingw\msys\1.0\bin\find会怎样? 设置路径后,find返回:"C:\Windows\System32\find.exe C:\MinGW\msys\1.0\bin\find.exe" 所以它找到了两个,但是windows 优先。使用 MSYS 查找的绝对路径执行 MSYS 版本。我只是没有使用我正在使用的代码指定绝对路径的选项。 (我使用的构建系统假定 find 执行 MSYS 样式的查找。) 嗯……很奇怪。如果您在更改路径后键入PATH,它会显示旧值还是新值? 想一想,检查注册表“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths”,看看是否有 find.exe 的条目 另外,在 cmd 提示符下尝试 doskey /macros 以防万一。 【参考方案1】:

当您运行 cmd.exe 时,请确保您没有从 C:\Windows\System32 目录运行该命令(它会自动为我打开)。当您位于具有匹配命令(在本例中为 MS 的 find.exe)的目录中时,本地副本将优先于您的 PATH 变量,即使您的 MSYS find.exe 在路径中首先列出。

所以,为了让它为我工作,我运行 cmd.exe,然后

C:\WINDOWS\system32>SET PATH=C:\msys64\usr\bin;C:\Program Files (x86)\CodeBlocks\MinGW\bin;%PATH%

如果我运行 where find 我会得到

C:\WINDOWS\system32>where find
C:\Windows\System32\find.exe
C:\msys64\usr\bin\find.exe
C:\Program Files (x86)\Git\bin\find.exe

如果我更改目录并运行where find,我会得到:

C:\WINDOWS\system32>cd C:\
C:\>where find
C:\msys64\usr\bin\find.exe
C:\Windows\System32\find.exe
C:\Program Files (x86)\Git\bin\find.exe

我的路径略有不同,因为我正在尝试使用 MSYS2,但同样适用于旧版本的 MSYS。

祝你好运@mikewesthad!

【讨论】:

现在好了。这很容易解决。在这里,我责怪 Windows 8 ......而不是阅读我的默认 cmd 路径。谢谢!

以上是关于在 Windows 8.1 上为 CMD 设置系统路径:尝试覆盖 Windows/System32/find.exe的主要内容,如果未能解决你的问题,请参考以下文章

命名控件存在于 Windows 10 但不存在于 Windows 8.1

如何在Windows 8/8.1系统中设置VPN

需要帮助让bash / batch在Windows 10上为R工作

如何将 Windows Server 2012 r2 打造成 Windows 8.1

如何将 Windows Server 2012 r2 打造成 Windows 8.1?

在 Windows 7 上为 Python 3.6 安装 libtorrent