Dec*_*ech 5 powershell executable file path
在很多情况下,我需要可执行文件或命令行工具的路径,例如:notepad或kubectl. 使用 PowerShell 时,可执行文件可用,但文件的物理位置并不总是很容易找到。
一种方法是搜索 PATH 上的每个文件夹,甚至更糟糕的是系统(gci -r | % { $_ ...}),但这不是最有效地利用时间,每次都重新编码。有没有更好的办法?
Jef*_*lin 11
Get-Command将返回一个包含多个带有路径名的字段的对象。例如,如果我Get-Command notepad在系统上输入,我会得到
PS Z:\\> Get-Command notepad\n\nCommandType Name Version Source\n----------- ---- ------- ------\nApplication notepad.exe 10.0.18... C:\\WINDOWS\\system32\\notepad.exe\n\nRun Code Online (Sandbox Code Playgroud)\n如果我输入Get-Command notepad | Select-Object *我会得到
PS Z:\\> Get-Command notepad | Select-Object * \n \n \nHelpUri : \nFileVersionInfo : File: C:\\WINDOWS\\system32\\notepad.exe \n InternalName: Notepad \n OriginalFilename: NOTEPAD.EXE.MUI \n FileVersion: 10.0.18362.1 (WinBuild.160101.0800) \n FileDescription: Notepad \n Product: Microsoft\xc2\xae Windows\xc2\xae Operating System \n ProductVersion: 10.0.18362.1 \n Debug: False \n Patched: False \n PreRelease: False \n PrivateBuild: False \n SpecialBuild: False \n Language: English (United States) \n \nPath : C:\\WINDOWS\\system32\\notepad.exe \nExtension : .exe \nDefinition : C:\\WINDOWS\\system32\\notepad.exe \nSource : C:\\WINDOWS\\system32\\notepad.exe \nVersion : 10.0.18362.1316 \nVisibility : Public \nOutputType : {System.String} \nName : notepad.exe \nCommandType : Application \nModuleName : \nModule : \nRemotingCapability : PowerShell \nParameters : \nParameterSets : \n \nRun Code Online (Sandbox Code Playgroud)\n
我最近发现Where.exePowerShell 可用。
> Where.exe kubectl
C:\Program Files\Docker\Docker\resources\bin\kubectl.exe
Run Code Online (Sandbox Code Playgroud)
这与 PowerShell 变量兼容,因此可以在编写脚本时使用:
$path = where.exe notepad
| 归档时间: |
|
| 查看次数: |
9397 次 |
| 最近记录: |