Çalışan bir PowerShell betiğinden tüm ortam değişkenlerini görüntüleyin


104

Çalışma zamanında bir PowerShell betiğinde tüm yapılandırılmış ortam değişkenlerini görüntülemem gerekiyor. Normalde, ortam değişkenlerini görüntülerken, kabukta aşağıdakilerden birini kullanabilirim (diğer tekniklerin yanı sıra, ancak bunlar basittir):

gci env:*
ls Env:

Bununla birlikte, başka bir programdan çağrılan bir komut dosyası var ve kodda yukarıdaki çağrılardan birini kullandığımda, ortam değişkenleri ve değerleri ile sunulmak yerine, bunun yerine değişkenler ve değerleri yerine bir System.Collections.DictionaryEntrytür listesi alıyorum . Bir PowerShell betiğinin içinde, tüm ortam değişkenlerini nasıl görüntüleyebilirim?

Yanıtlar:


156

Daha kısa versiyon:

gci env:* | sort-object name

Bu hem adı hem de değeri gösterecektir.


1
Neden böyle davrandığını ve komutunuzun bunu nasıl düzelttiğini açıklayabilir misiniz lütfen?
David Ferenczy Rogožan

3
Bu ilerlemenin işaretiydi çünkü envçok kolaydı. Lanet olsun size M $ insanlar.
matcheek


14

Sonunda sözlükteki her girişi yineleyerek bir çözüme doğru ilerledim:

(gci env:*).GetEnumerator() | Sort-Object Name | Out-String

benim için Linux'ta çalışmıyor. Alt gciöğeleri almak için eksik misiniz ?
Thufir

Bunu powershell çekirdeğinde denemedim, ancak cevabımda gci var. Bu sorunun [powershell] için olduğunu ve [powershell-core] olmadığını unutmayın, bu nedenle çözümler ikincisi için işe yaramayabilir.
En Büyük Bender

7

Joker kart filtreli kısa versiyon :

gci env: | where name -like 'Pro*'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.