PowerShell: Env: Hindari pemotongan variabel lingkungan


12

PowerShell menampilkan variabel lingkungan, masing-masing satu baris. Jika suatu variabel memiliki nilai yang cukup panjang, itu terpotong, dan ditambahkan sebuah elipsis:

> gci env:

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

Apakah ada cara untuk mendapatkan nilai penuh untuk semua var sekaligus, seperti pada prompt cmd standar? (jawaban diberikan untuk Powershell get-childitem env: path mengembalikan ellipsed satu baris, bagaimana cara mendapatkan sesuatu yang berguna? tidak akan berlaku, maka).


Saya telah menghabiskan satu jam mencari cara untuk mendapatkan PowerShell untuk menampilkan konten lengkap dari variabel lingkungan jalur saya. Itu selalu memotongnya menjadi 2452 karakter, dengan atau tanpa tanda elipsis, bahkan jika saya menentukan pemformatan yang lebih luas. Ini membuatnya tidak mungkin untuk memperlakukan PS sebagai hal lain selain berguna sepele. Pendapat saya tentang PS adalah POS dan tidak ada yang berubah. Saya telah membaca ratusan blog dan hasil pencarian dan tidak ada yang punya solusi. Bahkan di sini pun tidak.
Suncat2000

Jawaban:


15

Memotong format default, tentukan -Wrap dan lihat output penuh.

gci env: | Format-Table -Wrap -AutoSize

Hasil

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

atau jika Anda lebih suka output untuk mensimulasikan cmd.exe, coba

cmd /c start /b set

Hasil

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

Ini sudah sangat bagus. Adakah cara untuk mendapatkan format yang sama dengan prompt cmd standar? Mungkin memanggil cmd.exe dari prompt PowerShell?
sancho.s

Bagus, itulah yang saya usulkan.
sancho.s

4

Jika Anda ingin meniru set output dari PowerShell tanpa memohon cmd mencoba:

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

banyak mengetik, jadi bungkuslah dalam suatu fungsi:

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

Kedua opsi berfungsi ok.
sancho.s
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.