실행 중인 PowerShell 스크립트의 모든 환경 변수 표시
실행 시 PowerShell 스크립트에 구성된 모든 환경 변수를 표시해야 합니다.일반적으로 환경변수를 표시할 때 셸에서 다음 중 하나를 사용할 수 있습니다(다른 기술 중 하나지만, 이것들은 간단합니다).
gci env:*
ls Env:
다만, 다른 프로그램에서 스크립트를 호출하고 있습니다.이 스크립트에서 위의 콜 중 하나를 사용하면 환경변수와 그 값이 표시되지 않고 대신 다음 리스트가 표시됩니다.System.Collections.DictionaryEntry
변수 및 변수 값 대신 유형을 지정합니다.PowerShell 스크립트 내에서 모든 환경 변수를 표시하려면 어떻게 해야 합니까?
단축판:
gci env:* | sort-object name
그러면 이름과 값이 모두 표시됩니다.
최단 버전(이름별로 정렬된 변수 포함):
gci env:
나는 마침내 사전의 각 항목을 반복하여 해결책을 찾아냈다.
(gci env:*).GetEnumerator() | Sort-Object Name | Out-String
와일드카드 필터가 있는 쇼트버전:
gci env: | where name -like 'Pro*'
제공된 답변 중 어떤 것도 질문과 관련이 없다고 생각합니다.OP는 실제 변수 이름 및 값이 아닌 개체 유형 목록(각 구성원에 대해 동일)을 가져옵니다.다음은 당신이 원하는 것입니다.
gci env:* | select Name,Value
줄임말:
Get-ChildItem Env:* | Select-Object -Property Name,Value
이 명령어는 다음 명령어도 동작합니다.
dir env:
Powershell에서 모든 환경변수를 취득하는 방법에는 여러 가지가 있습니다.
[System.Environment]::GetEnvironmentVariables()
or
dir env:
이름으로 환경 변수를 가져오려면 다음과 같이 하십시오.
[System.Environment]::GetEnvironmentVariable("USERNAME")
$env:USERNAME
dr;dr
환경변수 이름-값 쌍을 알기 쉬운 문자열로 표현하려고 했으므로 다음과 같이 하십시오.
gci env: | oss
oss
를 위한 내장 래퍼 기능입니다.Out-String -Stream
따라서 각 이름과 값의 쌍을 자체 문자열로 반환합니다.파이프 접속처Out-String
(없음)-Stream
단일 다중 행 문자열을 가져오려면 (항상 예기치 않게 줄바꿈이 있는 문자열이 있어야 합니다.- GitHub 문제 #14444 참조).
PowerShell의 모든 환경변수의 이름과 값을 [1]이름별로 정렬하여 나열하려면 의 콘텐츠(하위 항목)를 나열합니다.env:
cmdlet을 사용하는 PowerShell 드라이브(내장 에일리어스:gci
):
# 'gci' is a built-in alias of the 'Get-ChildItem' cmdlet.
# Avoid alias 'ls', because on Unix-like platforms
# it isn't defined and instead refers to the standard utility of that name.
# The output is implicitly *sorted by variable name*.
gci env:
# Use *wildcards* to list variables by *name pattern*; e.g, all whose
# name starts with "home"
gci env:home*
위의 출력은 오브젝트, 즉 각 변수를 이름과 값의 쌍으로 기술하는 인스턴스입니다..Key
(.Name
)와.Value
특성.PowerShell의 디스플레이용 포맷 시스템은 자동으로 2열 형식으로 렌더링합니다.
환경 변수 이름만 나열하려면:
gci env: -Name # Alternative, using property access: (gci env:).Name
특정 환경변수 값을 가져옵니다(예:
USERNAME
, 이름 공간 변수 표기법을 사용하는 것이 가장 쉽습니다.# Output the value of environment variable "USERNAME" $env:USERNAME # Alternative, using gc (alias of Get-Content) # Needed if the name is stored in a variable. gc env:USERNAME
이러한 오브젝트를 (잠재적으로 암시)로 문자열화하면 다음과 같습니다.
Windows PowerShell에서는 유형 이름(예: 글자 그대로)으로 문자열화됩니다.
'System.Collections.DictionaryEntry'
PowerShell (Core) 7에서는 다음과 같이 보다 의미 있게 문자열화됩니다.
'[<name>, <value>]'
을)로
%
는 cmdlet의 삽입 에일리어스입니다).gci env: | % tostring # Ditto with Write-Host, which also uses .ToString() stringification gci env: | Write-Host
디스플레이에 인쇄되는 대로 문자열을 지정할 경우 편리한 2열 형식을 사용하여 cmdlet을 사용합니다.
# Outputs *friendly* string representations
gci env: | oss # 'oss' is a built-in wrapper function for 'Out-String -Stream'
" " 를 사용하는 : " " " 를 사용합니다.Out-String
없이-Stream
출력으로서 1 행의 복수 행의 문자열이 표시됩니다만, 그 문자열에는 후행의 새로운 [2]행이 붙어 있는 것에 주의해 주세요.
[1] 을 사용하는 것에 해 주세요.Get-ChildItem
gci
env:*
문자, 「」*
env:
- 모든 변수를 가져올 필요가 없을 뿐만 아니라 출력도 정렬되지 않습니다.
[2] GitHub호 #14444에서 논의된 바와 같이, 반드시 후행 뉴라인이 추가되는 것은 문제가 있다.
긴 환경 변수 값은 기본적으로 잘립니다.
이는 환경변수의 정렬된 목록을 전체 값으로 빠르게 가져올 수 있는 한 가지 방법입니다.
Get-ChildItem env:* | Sort-Object Name | Format-List
PowerShell Core(6 이상)를 사용하는 경우(pwsh: https://github.com/PowerShell/PowerShell), 를 사용할 수도 있습니다.ls env:
언급URL : https://stackoverflow.com/questions/39800481/display-all-environment-variables-from-a-running-powershell-script
'programing' 카테고리의 다른 글
Azure 서비스 프린서펄이 뭐죠? (0) | 2023.04.23 |
---|---|
환경변수가 존재하는지 확인하고 그 값을 얻는 방법 (0) | 2023.04.23 |
Query CosmosDb - 배열에 배열의 항목이 포함되어 있습니다. (0) | 2023.04.23 |
특별한 달러 기호 셸 변수는 무엇입니까? (0) | 2023.04.23 |
테이블 이름 검색 (0) | 2023.04.23 |