(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