Hiển thị tất cả các biến môi trường từ tập lệnh PowerShell đang chạy


104

Tôi cần hiển thị tất cả các biến môi trường đã định cấu hình trong tập lệnh PowerShell khi chạy. Thông thường khi hiển thị các biến môi trường, tôi chỉ có thể sử dụng một trong những cách sau tại shell (trong số các kỹ thuật khác, nhưng những kỹ thuật này rất đơn giản):

gci env:*
ls Env:

Tuy nhiên, tôi có một tập lệnh đang được gọi từ một chương trình khác và khi tôi sử dụng một trong các lệnh gọi ở trên trong tập lệnh, thay vì được hiển thị với các biến môi trường và giá trị của chúng, thay vào đó tôi nhận được danh sách các System.Collections.DictionaryEntrykiểu thay vì các biến và giá trị của chúng . Bên trong tập lệnh PowerShell, làm cách nào để hiển thị tất cả các biến môi trường?

Câu trả lời:


156

Phiên bản ngắn hơn:

gci env:* | sort-object name

Điều này sẽ hiển thị cả tên và giá trị.


1
Bạn có thể giải thích tại sao nó hoạt động như vậy và làm thế nào lệnh của bạn khắc phục nó, làm ơn?
David Ferenczy Rogožan

3
Đó là dấu hiệu của sự tiến bộ vì envquá dễ dàng. Đồ khốn kiếp người M $.
matcheek

36

Phiên bản ngắn nhất (với các biến được sắp xếp theo tên):

gci env:

14

Cuối cùng tôi đã tìm ra giải pháp bằng cách lặp lại từng mục trong từ điển:

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

không chạy trên Linux đối với tôi. Bạn đang thiếu gciđể có được các mục con?
Thufir

Tôi chưa thử điều này trên lõi powershell, nhưng gci có trong câu trả lời của tôi. Lưu ý rằng câu hỏi này dành cho [powershell] chứ không phải [powershell-core], do đó, các giải pháp có thể không hoạt động cho sau.
Bender the Greatest vào

7

Phiên bản ngắn với bộ lọc thẻ đại diện :

gci env: | where name -like 'Pro*'
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.