PowerShell: Env: Tránh cắt bớt các biến môi trường


16

PowerShell hiển thị các biến môi trường, mỗi dòng một dòng. Nếu một biến có giá trị đủ dài, nó bị cắt cụt và nối thêm dấu chấm lửng:

> gci env:

Name                           Value
----                           -----
<suppressed lines>
PSModulePath                   C:\Windows\system32\WindowsPowerSh...
<suppressed lines>

Có cách nào để có được giá trị đầy đủ cho tất cả các vars cùng một lúc, như trong dấu nhắc cmd tiêu chuẩn không? (câu trả lời được đưa ra cho Powershell get-childitem env: path trả về một dòng có dấu chấm lửng, làm thế nào để có một cái gì đó hữu ích? sẽ không áp dụng, sau đó).


Tôi đã dành một giờ để tìm kiếm các cách để PowerShell hiển thị toàn bộ nội dung của biến môi trường đường dẫn của tôi. Nó luôn cắt ngắn thành 2452 ký tự, có hoặc không có dấu chấm lửng, ngay cả khi tôi chỉ định định dạng rộng hơn. Điều này làm cho không thể coi PS là bất cứ thứ gì khác ngoài việc hữu ích tầm thường. Ý kiến ​​của tôi về PS là đó là một POS và không có gì thay đổi điều đó. Tôi đã đọc qua hàng trăm blog và kết quả tìm kiếm và không ai có giải pháp. Thậm chí không có ở đây.
Suncat2000

Câu trả lời:


21

Định dạng cắt ngắn mặc định, chỉ định -Wrap và xem đầu ra đầy đủ.

gci env: | Format-Table -Wrap -AutoSize

Kết quả

PSModulePath            C:\Users\KNUCKLE-DRAGGER\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

hoặc nếu bạn thích đầu ra mô phỏng chính xác cmd.exe, hãy thử

cmd /c start /b set

Kết quả

PSModulePath=C:\Users\KNUCKLE-DRAGGER\Documents\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules\

Điều này đã rất tốt. Bất kỳ cách nào để có được định dạng tương tự như một dấu nhắc cmd tiêu chuẩn? Có lẽ gọi cmd.exe từ dấu nhắc PowerShell?
sancho.s Phục hồi Monica

Tốt, đó là những gì tôi đã đề xuất.
sancho.s Phục hồi Monica

4

Nếu bạn muốn mô phỏng setđầu ra từ powershell mà không cần gọi cmdthử:

dir env: | %{"{0}={1}" -f $_.Name,$_.Value}

rất nhiều kiểu gõ, vì vậy hãy bọc nó trong một hàm:

function set {dir env: | %{"{0}={1}" -f $_.Name,$_.Value}}

Cả hai tùy chọn đều hoạt động tốt.
sancho.s Tái lập Monica
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.