Рейтинг:-2

Программно получить полный путь к двоичному файлу в powershell (что, где, Get-Command)

флаг cn

Как получить абсолютный путь к заданному двоичному файлу и сохранить его в переменной?

Что эквивалентно следующему для Linux Bash в Windows Powershell?

user@disp985:~$ path=`какой gpg`
user@disp985:~$ эхо $путь
/usr/bin/gpg
пользователь@disp985:~$ 

user@disp985:~$ $путь
gpg: keybox '/home/user/.gnupg/pubring.kbx' создан
gpg: ПРЕДУПРЕЖДЕНИЕ: команда не указана. Пытаюсь угадать, что ты имеешь в виду...
gpg: Давай, напиши свое сообщение...

В Windows Powershell есть Get-команда, но вывод вряд ли тривиален для программного анализа скрипта.

PS C:\Users\user> Get-Command gpg.exe
 
CommandType Имя Версия Источник
----------- ---- ------- ------
Приложение gpg.exe 2.2.28.... C:\Program Files (x86)\Gpg4win\..\GnuP...
 
 
PS C:\Пользователи\пользователь>

Как я могу программно определить полный путь к заданному двоичному файлу в Windows Powershell, сохранить его в переменной и выполнить?

флаг in
`сложно разобрать`? PowerShell объектно-ориентирован, ничего анализировать не нужно. Банальнее не станет.
флаг in
Кроме того, вопрос не по теме, вопросы по программированию относятся к [so]. Велика вероятность, что на этот вопрос уже был дан ответ там.
djdomi avatar
флаг za
Я согласен, что это не по теме о сбое сервера
Michael Altfield avatar
флаг cn
не уверен, что ввод команд в терминал powershell - это программирование, мне кажется, что это ошибка сервера ..
bjoster avatar
флаг cn
Обычно нет необходимости получать настройки объекта в виде переменной (строкового типа). Просто используйте его, где бы вы ни находились. Наиболее близким к пакетному (bash) строковому выводу будет `Get-Command format | Format-List Source`, который довольно легко разобрать.
Рейтинг:1
флаг cn

Для примера команды, предоставленной вопросом ОП:

PS C:\Users\user> Get-Command gpg.exe
 
CommandType Имя Версия Источник
----------- ---- ------- ------
Приложение gpg.exe 2.2.28.... C:\Program Files (x86)\Gpg4win\..\GnuP...
 
 
PS C:\Пользователи\пользователь>

Вы можете извлечь поле «Источник» со следующим синтаксисом

PS C:\Users\user> $(Get-Command gpg.exe).Источник
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe

Затем вы также можете сохранить его в переменной и выполнить с амперсандом (&), предшествующим переменной

PS C:\Users\user> $path=$(Get-Command gpg.exe).Источник
PS C:\Users\user> эхо $путь
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe
PS C:\Users\user> & $путь
gpg: ПРЕДУПРЕЖДЕНИЕ: команда не указана. Пытаюсь угадать, что ты имеешь в виду...
gpg: Давай, напиши свое сообщение...

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.