%20ao%20caminho%20no%20PowerShell.png)
Tenho um programa que gostaria de executar no Windows PowerShell. No cmd, basta digitar script.cmd
e o script será executado. No PowerShell, aparentemente, tenho que fazer ./script.cmd
.
O BASH se comporta de forma semelhante por padrão. Para mudar o comportamento do BASH você precisa fazer export PATH=$PATH:.
e então script.sh
funcionará em vez de apenas ./script.sh
.
Minha pergunta é... como posso script.cmd
trabalhar no PowerShell? Eu tenho que fazer algo semelhante a export PATH=$PATH:.
? Eu fiz echo $PATH
no PowerShell, mas não resultou em nada.
Responder1
Em primeiro lugar, leia get-help about_command_precedence
para ver como isso funciona.
Em seguida, digite $env:path
para visualizar seu PATH atual.
Você pode anexar um diretório ao PATH assim:$env:path += ";C:\Scripts"
Você também pode anexar o diretório atual ao PATH assim:$env:path += ";."
get-item env:
mostrará todas as variáveis de ambiente.
Responder2
Se você quiser fazer isso permanentemente, é isso que eu faço.
(E em vez de adicionar . ao caminho, tentarei adicionar o diretório atual em que você está agora)
Você pode, por exemplo, editar o registro sozinho.
$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
Claro que você precisa de direitos de administrador para isso. Então, vamos encontrar outra maneira se você não for administrador, e o PowerShell oferece outra maneira de fazer isso, assim:
[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$($pwd.Path)", "User")