Windows命令行中是否有“哪个”的等价物?由于有时我有路径问题,其中一个自己的cmd脚本被另一个程序隐藏(隐藏在路径的前面),所以我希望能够在Windows命令行中找到一个程序的完整路径,只要给出它的名称。是否与UNIX命令“哪个”等效?在UNIX上,which command打印给定命令的完整路径,以便轻松查找和修复这些隐藏问题。
3 回答
开心每一天1111
TA贡献1836条经验 获得超13个赞
where
c:\> for %i in (cmd.exe) do @echo. %~$PATH:i C:\WINDOWS\system32\cmd.exe c:\> for %i in (python.exe) do @echo. %~$PATH:i C:\Python25\python.exe
PATH
@echo off
setlocal enableextensions enabledelayedexpansion
:: Needs an argument.
if "x%1"=="x" (
echo Usage: which ^<progName^>
goto :end
)
:: First try the unadorned filenmame.
set fullspec=
call :find_it %1
:: Then try all adorned filenames in order.
set mypathext=!pathext!
:loop1
:: Stop if found or out of extensions.
if "x!mypathext!"=="x" goto :loop1end
:: Get the next extension and try it.
for /f "delims=;" %%j in ("!mypathext!") do set myext=%%j
call :find_it %1!myext!
:: Remove the extension (not overly efficient but it works).
:loop2
if not "x!myext!"=="x" (
set myext=!myext:~1!
set mypathext=!mypathext:~1!
goto :loop2
)
if not "x!mypathext!"=="x" set mypathext=!mypathext:~1!
goto :loop1
:loop1end
:end
endlocal
goto :eof
:: Function to find and print a file in the path.
:find_it
for %%i in (%1) do set fullspec=%%~$PATH:i
if not "x!fullspec!"=="x" @echo. !fullspec!
goto :eof- 3 回答
- 0 关注
- 800 浏览
添加回答
举报
0/150
提交
取消
