%20a%20la%20ruta%20en%20powershell.png)
Tengo un programa que me gustaría ejecutar en Windows PowerShell. En cmd simplemente escribo script.cmd
y ejecutará el script. En PowerShell aparentemente tengo que hacerlo ./script.cmd
.
BASH se comporta de manera similar por defecto. Para cambiar el comportamiento de BASH, debe hacerlo export PATH=$PATH:.
y luego script.sh
funcionará en lugar de simplemente ./script.sh
.
Mi pregunta es... ¿cómo puedo hacer que script.cmd
funcione en PowerShell? ¿Tengo que hacer algo similar a export PATH=$PATH:.
? Lo hice echo $PATH
en PowerShell pero no generó nada.
Respuesta1
En primer lugar, lea get-help about_command_precedence
para ver cómo funciona.
A continuación, escriba $env:path
para ver su RUTA actual.
Puede agregar un directorio a la RUTA como este:$env:path += ";C:\Scripts"
También puede agregar el directorio actual a la RUTA de esta manera:$env:path += ";."
get-item env:
le mostrará todas las variables de entorno.
Respuesta2
Si quieres hacerlo permanentemente, esto es lo que hago.
(Y en lugar de agregar . a la ruta, intentaré agregar el directorio actual en el que se encuentra ahora)
Puede, por ejemplo, editar el registro usted mismo.
$oldpath = (Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).path
$newpath = "$oldpath;$($pwd.Path)"
Set-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH -Value $newPath
#final check
Get-ItemProperty -Path 'HKLM:\System\CurrentControlSet\Control\Session Manager\Environment' -Name PATH).Path
Por supuesto que necesitas derechos de administrador para eso. Así que busquemos otra manera si no eres administrador, y PowerShell te ofrece otra manera de hacerlo, como esta:
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$($pwd.Path)", "User")