Tampilkan semua variabel lingkungan dari skrip PowerShell yang sedang berjalan


104

Saya perlu menampilkan semua variabel lingkungan yang dikonfigurasi dalam skrip PowerShell saat runtime. Biasanya ketika menampilkan variabel lingkungan, saya hanya dapat menggunakan salah satu dari yang berikut di shell (di antara teknik lain, tetapi ini sederhana):

gci env:*
ls Env:

Namun, saya memiliki skrip yang dipanggil dari program lain, dan ketika saya menggunakan salah satu panggilan di atas dalam skrip, alih-alih disajikan dengan variabel lingkungan dan nilainya, saya malah mendapatkan daftar System.Collections.DictionaryEntryjenis alih-alih variabel dan nilainya . Di dalam skrip PowerShell, bagaimana cara menampilkan semua variabel lingkungan?

Jawaban:


156

Versi lebih pendek:

gci env:* | sort-object name

Ini akan menampilkan nama dan nilainya.


1
Bisakah Anda menjelaskan mengapa itu berperilaku seperti itu dan bagaimana perintah Anda memperbaikinya?
David Ferenczy Rogožan

3
Itu pertanda kemajuan karena envterlalu mudah. Sialan Anda M $ orang.
matcheek


14

Saya akhirnya mencari solusi dengan mengulangi setiap entri di kamus:

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

tidak berjalan di Linux untuk saya. Apakah Anda kehilangan gciuntuk mendapatkan item anak?
Thufir

Saya belum mencoba ini pada inti PowerShell, tetapi gci ada di jawaban saya. Perhatikan bahwa pertanyaan ini untuk [PowerShell] dan bukan [PowerShell-Core], jadi solusi mungkin tidak berfungsi untuk yang terakhir.
Bender the Greatest

7

Versi singkat dengan filter kartu liar :

gci env: | where name -like 'Pro*'
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.