(1)“mklink”命令在哪里?我在 C:\Windows 中搜索了它,但没有结果。
(2) Ubuntu 中是否有像“which”命令这样的通用方法来找出文件夹可能位于 %PATH% 中的命令的绝对路径?
答案1
编辑:忽略以下内容,尽管我仍然建议安装 gow,但您只需使用窗口的 where 命令即可:
https://ss64.com/nt/where.html
我which
在 Windows 中有,但那是因为我安装了https://github.com/bmatzelle/gow/wiki
GOWwhich
搜索 PATH 中的文件夹以尝试找到其中的脚本/可执行文件(或者至少这是我的假设,似乎是一个合理的假设)
例如:
C:\>which python
C:\Users\Almenon\AppData\Local\Programs\Python\Python36\python.EXE
甚至:
C:\>which which
C:\Program Files (x86)\Gow\bin\which.EXE
不幸的是,在路径中找不到 mklink,所以我猜这是一些内部窗口的东西,就像@Natsu-kage 说的那样
C:\>which mklink
which: no mklink in (.;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Intel\Intel(R) Management Engine Components\iCLS\;C:\Program Files\Python36\Scripts\;C:\Program Files\Python36\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\ProgramData\chocolatey\bin;C:\Program Files (x86)\Gow\bin;C:\Program Files\Redis\;C:\Program Files\GTK3-Runtime Win64\bin;C:\Program Files (x86)\Yarn\bin\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Program Files\nodejs\;C:\Users\almenon\AppData\Local\Programs\Python\Python36\Scripts\;C:\Users\almenon\AppData\Local\Programs\Python\Python36\;C:\Users\almenon\AppData\Local\Microsoft\WindowsApps;C:\Users\almenon\AppData\Local\Programs\Microsoft VS Code\bin;C:\Users\almenon\AppData\Roaming\npm;C:\Users\almenon\AppData\Local\Yarn\bin;C:\Users\almenon\AppData\Roaming\Python\Python36\Scripts;C:\Users\almenon\AppData\Local\Programs\Git\cmd;C:\Users\almenon\Google Drive\Dev\dev setup)
答案2
- where 命令的一些使用建议
where.exe
/
- 查找当前驱动器中的所有文件夹/子文件夹:
%__APPDIR__%where.exe /r \ mklink.*
- 查找当前驱动器中的所有子文件夹:文件夹:
%__APPDIR__%where.exe /r "." mklink.*
- 仅在当前驱动器中的当前文件夹(而不是子文件夹)中查找:文件夹:
%__APPDIR__%where.exe ".:mklink.*"
- 查找 %PATH% 变量中的所有路径:
%__APPDIR__%where.exe "%path%:mklink.*"
- 通过命令行将结果保存在变量中:
for /f delims^= %i in ('%__APPDIR__%where.exe "%path%:mklink.exe"')do set "_path_to_file=%~dpi" && set "_full_path=%~fi"
- 要在命令行上将结果保存在变量中:
for /f delims^= %i in ('%__APPDIR__%where.exe "%path%:mklink.exe"')do set "_path_to_file=%~dpi" && set "_full_path=%~fi"
@echo off & for /f delims^= %%i in ('%__APPDIR__%where.exe "%path%:mklink.exe"')do set "_path_to_file=%%~dpi" && set "_full_path=%%~fi"
观察: where
始终返回文件的完整路径。
%__APPDIR__%where.exe "%path%:mshta.exe"
rem :: results ::
C:\Windows\System32\mshta.exe