PowerShell:Env:環境変数の切り捨てを避ける


16

PowerShellは、環境変数を1行ずつ表示します。変数の値が十分に長い場合、切り捨てられ、省略記号が追加されます。

> gci env:

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

標準のcmdプロンプトのように、すべての変数の完全な値を一度に取得する方法はありますか?(Powershellのget-childitem env:pathに対する回答は、省略された1行を返しますが、有用なものをどのように取得するのかは適用されません)。


PowerShellにパス環境変数の完全なコンテンツを表示させる方法の検索に1時間を費やしました。より広い書式を指定しても、省略記号の有無にかかわらず、常に2452文字に切り捨てられます。これにより、PSを些細な有用性以外のものとして扱うことができなくなります。PSの私の意見は、それがPOSであり、それを変更するものは何もないということです。私は何百ものブログと検索結果を読みましたが、誰も解決策がありません。ここでもありません。
Suncat2000

回答:


21

デフォルトのフォーマットは切り捨てられ、-Wrapを指定すると、完全な出力が表示されます。

gci env: | Format-Table -Wrap -AutoSize

結果

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

または、cmd.exeを正確にシミュレートする出力を希望する場合は、試してください

cmd /c start /b set

結果

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

これはすでに非常に良いです。標準のコマンドプロンプトと同じ形式を取得する方法はありますか?おそらくPowerShellプロンプトからcmd.exeを呼び出しますか?
sancho.s復活モニカ

良い、それが私が提案していたことです。
sancho.s復活モニカ

4

settryを呼び出さずにpowershellからの出力をエミュレートする場合cmd

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

タイピングが多いので、関数でラップします。

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

どちらのオプションも正常に機能します。
sancho.s回復モニカ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.