我如何问PowerShell的东西在哪里?
例如,"which notepad",它根据当前路径返回notepad.exe运行的目录。
我如何问PowerShell的东西在哪里?
例如,"which notepad",它根据当前路径返回notepad.exe运行的目录。
当前回答
这是一个实际的*nix等效,即它给出*nix风格的输出。
Get-Command <your command> | Select-Object -ExpandProperty Definition
用你想要的替换就行了。
PS C:\> Get-Command notepad.exe | Select-Object -ExpandProperty Definition
C:\Windows\system32\notepad.exe
当你把它添加到你的配置文件时,你会想要使用一个函数而不是一个别名,因为你不能对管道使用别名:
function which($name)
{
Get-Command $name | Select-Object -ExpandProperty Definition
}
现在,当你重新加载你的个人资料,你可以这样做:
PS C:\> which notepad
C:\Windows\system32\notepad.exe
其他回答
看看这个PowerShell哪个。
这里提供的代码表明:
($Env:Path).Split(";") | Get-ChildItem -filter notepad.exe
在Windows 2003或更高版本(或Windows 2000/XP,如果您已经安装了Resource Kit)上尝试使用where命令。
顺便说一下,这个问题在其他问题中得到了更多的答案:
Windows上有对应的“which”吗?
PowerShell相当于Unix的哪个命令?
There also always the option of using which. there are actually three ways to access which from Windows powershell, the first (not necessarily the best) wsl -e which command (this requires installation of windows subsystem for Linux and a running distro). B. gnuwin32 which is a port of several gnu binaries in .exe format as standle alone bundled lanunchers option three, install msys2 (cross compiler platform) if you go where it installed in /usr/bin you'll find many many gnu utils that are more up-to-date. most of them work as stand alone exe and can be copied from the bin folder to your home drive somewhere amd added to your PATH.
这是一个实际的*nix等效,即它给出*nix风格的输出。
Get-Command <your command> | Select-Object -ExpandProperty Definition
用你想要的替换就行了。
PS C:\> Get-Command notepad.exe | Select-Object -ExpandProperty Definition
C:\Windows\system32\notepad.exe
当你把它添加到你的配置文件时,你会想要使用一个函数而不是一个别名,因为你不能对管道使用别名:
function which($name)
{
Get-Command $name | Select-Object -ExpandProperty Definition
}
现在,当你重新加载你的个人资料,你可以这样做:
PS C:\> which notepad
C:\Windows\system32\notepad.exe
与Unix的快速匹配
New-Alias which where.exe
但如果它们存在,它会返回多行,然后它就变成
function which {where.exe command | select -first 1}