добавление cwd / pwd / (.) к пути в powershell

добавление cwd / pwd / (.) к пути в powershell

Итак, у меня есть программа, которую я хочу запустить в Windows PowerShell. В cmd я просто ввожу, script.cmdи скрипт запускается. В PowerShell мне, по-видимому, нужно сделать ./script.cmd.

BASH по умолчанию ведет себя аналогично. Чтобы изменить поведение BASH, вам нужно сделать export PATH=$PATH:.и тогда script.shбудет работать вместо просто ./script.sh.

Мой вопрос... как мне заставить script.cmdработать PowerShell? Мне нужно сделать что-то похожее export PATH=$PATH:.? Я сделал echo $PATHв PowerShell, но это ничего не вывело..

решение1

Прежде всего, прочитайте, get-help about_command_precedenceкак это работает.

Далее введите $env:path, чтобы просмотреть текущий PATH.

Вы можете добавить каталог в PATH следующим образом:$env:path += ";C:\Scripts"

Вы также можете добавить текущий каталог в PATH следующим образом:$env:path += ";."

get-item env:покажет вам все переменные среды.

решение2

Если вы хотите сделать это навсегда, вот что я делаю.

(И вместо добавления . к пути я попробую добавить текущий каталог, в котором вы сейчас находитесь)

Например, вы можете самостоятельно редактировать реестр.

$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

Конечно, для этого вам нужны права администратора. Так что давайте найдем другой способ, если вы не администратор, и powershell дает вам другой способ сделать это, например:

[Environment]::SetEnvironmentVariable("Path", $env:Path + ";$($pwd.Path)", "User")

Связанный контент