【bat】windows和linux下查找命令

DATE: 2018.12.20


1、参考

https://blog.csdn.net/caz28/article/details/43866571
https://blog.csdn.net/lyblyblyblin/article/details/79599035
https://blog.csdn.net/caz28/article/details/43866571
https://blog.csdn.net/grey_csdn/article/details/68938870

2、Linux下的which命令

参考自:https://blog.csdn.net/wx601056818/article/details/80062026
which命令的作用:在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

  1. 命令格式:
  which 可执行文件名称
  1. 命令功能:

which指令会在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。

  1. 命令参数:
  -n  指定文件名长度,指定的长度必须大于或等于所有文件中最长的文件名。

  -p  与-n参数相同,但此处的包括了文件的路径。

  -w  指定输出时栏位的宽度。

  -V  显示版本信息
  1. 使用实例:

实例1:查找文件、显示命令路径

[root@localhost ~]# which pwd
   /bin/pwd
[root@localhost ~]# which adduser
   /usr/sbin/adduser
[root@localhost ~]#

说明:

which 是根据使用者所配置的 PATH 变量内的目录去搜寻可运行文件的!所以,不同的 PATH 配置内容所找到的命令当然不一样的!

2、Windows下的where命令

cmd下输入where /?

C:Windowssystem32>where /?

WHERE [/R dir] [/Q] [/F] [/T] pattern…

描述:
显示符合搜索模式的文件位置。在默认情况下,搜索是在当前目录和 PATH
环境变量指定的路径中执行的。

参数列表:
/R 从指定目录开始,递归性搜索并显示符合指定模式的文件。
/Q 只返回退出代码,不显示匹配文件列表。(安静模式)
匹配文件。(安静模式)
/F 显示所有相配文件并用双引号括上。
/T 显示所有相配文件的文件的文件。
pattern 指定要匹配的文件的搜索模式。通配符 * 和 ? 可以用在模式中。
也可以指定 “$env:pattern” 和 “path:pattern” 格式; 其中
“env” 是环境变量,搜索是在 “env” 变量的指定的路径中执行的。
这些格式不应该跟 /R 一起使用。此搜索也可以用将 PATHEXT 变
量扩展名附加于此模式的方式完成。
/? 显示此帮助消息。
注意: 如果搜索成功,此工具返回错误级别 0; 如果不成功,返回 1; 如果失
败或发生错误,返回 2。

示例:
    WHERE /?
    WHERE myfilename1 myfile????.*
    WHERE $windir:*.*
    WHERE /R c:windows *.exe *.dll *.bat
    WHERE /Q ??.???
    WHERE "c:windows;c:windowssystem32:*.dll"
    WHERE /F /T *.dll
@echo off
echo %~dp$PATH:1
@echo on

THE END!

原文地址:https://www.cnblogs.com/SoaringLee/p/10532198.html