powershell의 경로에 cwd / pwd / (.) 추가

powershell의 경로에 cwd / pwd / (.) 추가

그래서 Windows PowerShell에서 실행하고 싶은 프로그램이 있습니다. cmd에 입력만 하면 script.cmd스크립트가 실행됩니다. PowerShell에서는 분명히 ./script.cmd.

BASH는 기본적으로 유사하게 동작합니다. BASH의 동작을 변경하려면 export PATH=$PATH:.수행 script.sh해야 하며 ./script.sh.

script.cmd내 질문은... PowerShell에서 어떻게 작업할 수 있나요 ? 와 비슷한 일을 해야 합니까 export PATH=$PATH:.? PowerShell에서 했는데 echo $PATH아무 것도 출력되지 않았습니다.

답변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")

관련 정보