windows - 更改 Windows 上可执行命令的顺序

标签 windows command-line path-variables

有时我需要更改仅共享名称的可执行命令的顺序。让我给你看一个简单的例子:

λ where find
C:\Windows\System32\find.exe
C:\Program Files\Git\usr\bin\find.exe
C:\cygwin64\bin\find.exe

在这种情况下,将调用 Windows 的“查找”命令而不是其他两个命令 (GNU findutils)。我的问题很简单:更改顺序或将其中一个设置为第一偏好的正确方法是什么?

最佳答案

转到 Windows 的环境变量定义并复制 PATH 的现有条目.创建一个名为 BASEPATH 的新变量并将所有不属于路径列表的条目放入其中 find.exe可以被找寻到。

现在创建一个名为 fwin.cmd 的文件并将其放在 PATH 上的某个位置。该文件的内容如下所示:

@echo off
SET PATH=C:\windows\system32;%BASEPATH%
ECHO Set path to search tools like find in Windows own folder

创建两个文件 fgit.cmdfcyg.cmd并相应地更改 PATH。

不时额外安装的应用程序会改变您的 PATH .如果是这种情况,您需要将新条目添加到 BASEPATH .

取决于哪个find.exe你想要的,打开Windows的命令行shell并调用相应的cmd文件。批处理设置的路径将是打开的 shell 的本地路径,一旦关闭它,设置将消失。

你也可以直接解决想要的 find.exe 但这意味着更多的输入并且可能不是你想要的:
dir C:\ /S | C:\Windows\System32\find.exe foo

关于windows - 更改 Windows 上可执行命令的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59722970/

相关文章:

c++ - Waitforsingleobject 在尝试打开 Notepad++ 时有效,但在 Firefox 中立即返回

java - Windows 上 Tomcat 上的 Log4j2 产生警告 "unable to instantiate org.fusesource.jansi.WindowsAnsiOutputStream"

c++ - 如何将函数指针作为 lpParameter 传递给 CreateThread?

python - 使用 argparse 获取选定的子命令

windows - HWND在窗口站中是独一无二的吗?

php - 从命令行运行脚本时的 open_basedir 限制

android - 如何在命令行环境中找到sdk.dir位置?

java - Spring 多路径变量

unix - 如何在 shell 脚本中操作 $PATH 元素?

azure - 创建 Azure Paas 角色时未设置 Java PATH