%20%EC%B6%94%EA%B0%80.png)
그래서 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")