windows - 在 Windows 8.1 : Trying to override Windows/System32/find. exe 上为 CMD 设置系统路径

标签 windows cmd mingw windows-8.1 msys

我试图覆盖 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 中按预期工作)。

谢谢!

最佳答案

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

所以,为了让它为我工作,我运行 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 - 在 Windows 8.1 : Trying to override Windows/System32/find. exe 上为 CMD 设置系统路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25255504/

相关文章:

windows - 如何将命令行指令本身转储到输出文件中?

c - MinGW GCC - 未定义对 `atexit' 的引用

c++ - Mingw 的处理/导出问题

java - windows上CTRL+C任务查杀的等效代码是什么?

python - 当多个 python 版本时,在 Windows 上 pip installwheel

asp.net - 通过网页安装windows应用程序

java - 找不到类 javacard.framework.service.CardRemoteObject

bash - 带时间戳的 Mysql 转储

c++ - 从多个临时文件中创建引用

c++ - 如何找出应用程序崩溃的原因 - Win 10 LTSB