.png)
¿Cómo obtengo la ruta absoluta a un binario determinado y la almaceno en una variable?
¿Cuál es el equivalente a lo siguiente para Linux Bash en Windows Powershell?
user@disp985:~$ path=`which gpg`
user@disp985:~$ echo $path
/usr/bin/gpg
user@disp985:~$
user@disp985:~$ $path
gpg: keybox '/home/user/.gnupg/pubring.kbx' created
gpg: WARNING: no command supplied. Trying to guess what you mean ...
gpg: Go ahead and type your message ...
En Windows Powershell, existe Get-Command
, pero el resultado no es trivial de analizar mediante programación para un script.
PS C:\Users\user> Get-Command gpg.exe
CommandType Name Version Source
----------- ---- ------- ------
Application gpg.exe 2.2.28.... C:\Program Files (x86)\Gpg4win\..\GnuP...
PS C:\Users\user>
¿Cómo puedo determinar mediante programación la ruta completa a un binario determinado en Windows Powershell, almacenarlo en una variable y ejecutarlo?
Respuesta1
Para el comando de ejemplo proporcionado por la pregunta OP:
PS C:\Users\user> Get-Command gpg.exe
CommandType Name Version Source
----------- ---- ------- ------
Application gpg.exe 2.2.28.... C:\Program Files (x86)\Gpg4win\..\GnuP...
PS C:\Users\user>
Puede extraer el campo "Fuente" con la siguiente sintaxis
PS C:\Users\user> $(Get-Command gpg.exe).Source
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe
Luego también puede almacenarlo en una variable y ejecutarlo con un signo comercial (&) precediendo a la variable.
PS C:\Users\user> $path=$(Get-Command gpg.exe).Source
PS C:\Users\user> echo $path
C:\Program Files (x86)\Gpg4win\..\GnuPG\bin\gpg.exe
PS C:\Users\user> & $path
gpg: WARNING: no command supplied. Trying to guess what you mean ...
gpg: Go ahead and type your message ...