В Linux у нас есть команда which для поиска пути к исполняемому файлу.
Каков его эквивалент Windows? Есть ли какая-либо команда PowerShell для этого?
В Linux у нас есть команда which для поиска пути к исполняемому файлу.
Каков его эквивалент Windows? Есть ли какая-либо команда PowerShell для этого?
Ответы:
Некоторые версии Windows (я думаю, что Windows 2003 и выше) имеют команду where:
c:\>where ping
C:\Windows\System32\PING.EXE
where
работать для меня в Windows 7
where /r c:\ fileName
добавление / RC: \ позволило мне выполнить рекурсивный поиск , начиная с корня диска С помощью Windows 7 Professional, кажется, не быть в access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/...
where.exe ping
потому что where
по умолчанию псевдоним Where-Object
командлета, что совершенно другая история
where.exe
явно, а не where
работает для меня в PowerShell
Да, Get-Command
найдет все команды, включая исполняемые:
PS\> Get-Command ipconfig
Если вы хотите ограничить команды только исполняемыми файлами:
PS\> Get-Command -CommandType Application
Найдет всех бывших на вашем пути. Существует псевдоним для интерактивного использования:
PS\> gcm net* -CommandType Application
Чтобы получить путь к исполняемому файлу, вы можете использовать Path
свойство возвращаемого объекта. Например:
PS\> (Get-Command notepad.exe).Path
Для получения дополнительной информации, запустите man Get-Command -full
.
Если вы хотите сделать его коротким, создайте файл с одной строкой which.cmd с содержимым
echo %~$PATH:1
Будет выполнен поиск первого параметра (% 1), переданного в сценарий, и будет показан полный путь к найденному файлу. Хорошее место для размещения этого скрипта в Windows 10 - это% LOCALAPPDATA% \ Microsoft \ WindowsApps \ which.cmd
И вы получите свою команду в пути.
c:\>which cmd.exe
c:\>echo C:\Windows\System32\cmd.exe
C:\Windows\System32\cmd.exe
where.exe
явно, а не where
работает для меня в PowerShell:
PS C:\Users\birdc> where ping
PS C:\Users\birdc> where.exe ping
C:\Windows\System32\PING.EXE
where ping
ничего не дает мне в PowerShell.
where.exe
.