agregando cwd/pwd/(.) a la ruta en powershell

agregando cwd/pwd/(.) a la ruta en powershell

Tengo un programa que me gustaría ejecutar en Windows PowerShell. En cmd simplemente escribo script.cmdy 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.shfuncionará en lugar de simplemente ./script.sh.

Mi pregunta es... ¿cómo puedo hacer que script.cmdfuncione en PowerShell? ¿Tengo que hacer algo similar a export PATH=$PATH:.? Lo hice echo $PATHen PowerShell pero no generó nada.

Respuesta1

En primer lugar, lea get-help about_command_precedencepara ver cómo funciona.

A continuación, escriba $env:pathpara 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")

información relacionada