programing

PowerShell의 콘솔에 환경 변수를 인쇄하는 방법은 무엇입니까?

fastcode 2023. 4. 25. 23:10
반응형

PowerShell의 콘솔에 환경 변수를 인쇄하는 방법은 무엇입니까?

PowerShell을 사용하기 시작했는데 다음 방법을 찾고 있습니다.echo읽을 시스템 환경 변수를 콘솔에 표시합니다.

다음 중 어느 것도 작동하지 않습니다.첫 번째는 그냥 인쇄합니다.%PATH%, 그리고 두 번째는 인쇄되지 않습니다.

echo %PATH%
echo $PATH

변수 이름 앞에 다음을 붙입니다.env:

$env:path

예를 들어 환경 값 값을 인쇄하려면 다음과 같이 하십시오.MINISHIFT_USERNAME명령어는 다음과 같습니다.

$env:MINISHIFT_USERNAME

또한 다음을 통해 모든 변수를 열거할 수 있습니다.env다음을 수행합니다.

Get-ChildItem env:

Mathias가 대답합니다.

OP에는 언급되지 않았지만 Powershell 특정/관련 내부 변수도 확인해야 하는 경우 를 사용해야 합니다.Get-Variable:

$ Get-Variable

Name                           Value
----                           -----
$                              name
?                              True
^                              gci
args                           {}
ChocolateyTabSettings          @{AllCommands=False}
ConfirmPreference              High
DebugPreference                SilentlyContinue
EnabledExperimentalFeatures    {}
Error                          {System.Management.Automation.ParseException: At line:1 char:1...
ErrorActionPreference          Continue
ErrorView                      NormalView
ExecutionContext               System.Management.Automation.EngineIntrinsics
false                          False
FormatEnumerationLimit         4
...

여기에는 프로필 시작 스크립트에서 설정한 내용도 포함됩니다.

내 생각에 다음 사항이 가장 적합합니다.

Get-Item Env:PATH
  1. 더 짧고, 따라서 기억하기 쉽죠Get-ChildItem환경 변수가 있는 계층은 없습니다.
  2. 이 명령은 Powershell을 사용하여 환경 변수를 설정하는 데 사용되는 방법 중 하나와 대칭입니다(EX:Set-Item -Path env:SomeVariable -Value "Some Value")
  3. 이 방법으로 작업하는 습관이 있다면 모든 환경 변수를 나열하는 방법을 기억할 것입니다. 항목 부분을 생략하기만 하면 됩니다.Get-Item Env:)

처음에는 구문이 이상하다고 생각했지만 프로바이더의 개념을 이해한 후부터 더 말이 되기 시작했습니다.기본적으로 PowerShell을 사용하면 파일 시스템과 유사한 방식으로 시스템의 서로 다른 구성 요소를 탐색할 수 있습니다.

후행 결장의 의미가 뭐죠?Env:? 공급자를 통해 제공되는 모든 "드라이브"를 다음과 같이 나열해 보십시오.

PS> Get-PSDrive

일부 결과만 표시됩니다(Alias, C, Cert, D, Env, Function, HKCU, HKLM, Variable, WSMan).는 것은 명백합니다.Env는 특정 "드라이브"에 불과하며, 콜론은 Windows를 사용해 본 사람이라면 누구나 잘 아는 구문입니다.

다음과 같이 드라이브를 이동할 수 있습니다.

Get-ChildItem C:\Windows
Get-Item C:
Get-Item Env:
Get-Item HKLM:
Get-ChildItem HKLM:SYSTEM

제가 이걸 직접 발견했어요길을 보고 싶었지만 각각 다른 선에 놓았습니다.그러면 경로가 인쇄되고 세미콜론으로 분할됩니다.

$env:path.Split(";")

다른 답변에 대한 보완책으로요

모든 환경 변수를 나열하는 경우 명령을 간결하게 하기 위해 다음을 사용할 수 있습니다.dir,ls,그리고.gci(Get-ChildItem의 약자)는 다음과 같은 세 가지 별칭입니다.Get-ChildItem요.

따라서 다음 명령은 모두 동일하며 이 컨텍스트에서 사용할 수 있습니다.

Get-ChildItem Env:

아니면요?

dir Env:

아니면요?

ls Env:

아니면요?

gci Env:

자세한 내용은 셸텍을 참조하십시오.


또한 실제 활용 로 환경변수 목록을 사전순으로 정렬하여 볼 수 있습니다.Name아니면요?Value이겁니다.

Get-ChildItem Env: | Sort Name

아니면요?

Get-ChildItem Env: | Sort Value

참고: 교체할 수 없습니다.Get-ChildItem Env:와와 with와 함께요.Get-Item Env:(목록은 정렬되지 않고 변경되지 않습니다.)그래서 이런 경우에는 '아까', '아까', '아까', '아까', 이렇게요.Get-ChildItemthe(으)ㄹ 수 있다보다 더 좋을 수도 있어요.Get-ItemBitBite가 이 답변에 언급했습니다.

마지막으로 다음과 같이 환경 변수의 특정 레코드 값을 정렬할 수 있습니다.

(Get-ChildItem Env:PATH).Value.Split(';') | Sort

언급URL : https://stackoverflow.com/questions/50861082/how-to-print-environment-variables-to-the-console-in-powershell 입니다.

반응형