35

プリインストールされたショートカットの 1 つから PowerShell ウィンドウを起動すると、PowerShell ウィンドウの素敵な青色に愛着を感じます。ただし、powershell.exe を手動で起動すると、これらの色は表示されず、黒/白になります :(

これは、デフォルト設定がショートカット (.lnk) ファイルに設定されているためです。

PowerShell ショートカットの色設定

エクスプローラーのコンテキスト メニューに "PowerShell Prompt Here" エントリがあり、通常のショートカットと同じ素敵な色を使用して PowerShell を起動したいと考えています。黒は最悪で、異なる色のウィンドウがあると混乱します (特に、昔ながらのコマンド ウィンドウを頻繁に開いていて、それが黒でもある場合は特にそうです)。

これまでのところ、これを設定しようとすると2つの問題が見つかりました。

  1. PowerShell 内から色を設定すると、特定の値 (ConsoleColor enum) のみが許可されるように見えますが、デフォルトのショートカットの値と一致するものはありません。
  2. PS プロファイル内で色を設定すると、後で書かれたテキストのみが新しい背景色を優先します。「cls」を追加すると、開始時に元の色の厄介なフラッシュが発生します。

ショートカットと同じ設定を使用するコマンド ラインから PowerShell を起動する方法 (つまり、エクスプローラーのコンテキスト メニュー項目としてレジストリに埋め込むことができる方法) はありますか?

4

9 に答える 9

31

プロファイル スクリプト ($profile が指す) を編集し、必要な色を自分で設定します。

# set regular console colors
[console]::backgroundcolor = "darkmagenta"
[console]::foregroundcolor = "darkyellow"

# set special colors

$p = $host.privatedata

$p.ErrorForegroundColor    = "Red"
$p.ErrorBackgroundColor    = "Black"
$p.WarningForegroundColor  = "Yellow"
$p.WarningBackgroundColor  = "Black"
$p.DebugForegroundColor    = "Yellow"
$p.DebugBackgroundColor    = "Black"
$p.VerboseForegroundColor  = "Yellow"
$p.VerboseBackgroundColor  = "Black"
$p.ProgressForegroundColor = "Yellow"
$p.ProgressBackgroundColor = "DarkCyan"

# clear screen
clear-host
于 2012-12-04T13:47:46.463 に答える
24

これは本当に簡単な方法です:

1. .LNK を PATHEXT 変数に追加します。

開始 -> 「sysdm.cpl」を実行 -> 詳細設定 -> 環境変数

システム変数を下にスクロールし、PATHEXT をダブルクリックします。

.LNK を追加します。以下に示すように:

パス拡張

2 デフォルトの「Windows Powershell.lnk」をコピーします

Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"

3.実行プロンプトから「powershell」と入力すると、デフォルトのコンソールの色/構成が表示されます。

C:\Windows\System32 の .lnk を好みに合わせてさらにカスタマイズできます。

これは、許容される拡張子のリストに .lnk を追加し、デフォルトで c:\windows\system32 が検索パス (PATH システム変数) の最初の項目である場合にのみ機能することに注意してください。

cmd.exe 経由でコンソールを起動した場合、コンソールはカスタマイズされません。

4. [ここで Powershell を実行] コンテキスト メニューからこれを機能させるには、これを .reg ファイルとして保存し、インポートします。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'\""

[HKEY_CLASSES_ROOT\Directory\shell\PowerShellHere\command]
@="C:\\WINDOWS\\system32\\cmd.exe /c start powershell -NoExit \"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'\""

cmd.exe を使用して「start」を呼び出しています。これにより、powershell.lnk が起動され、現在の作業ディレクトリが引数として渡されます。アドレスバーからはまだ機能していないようです。私は 45 分前に家に帰るべきだったのですが、あなたの問題は解決するのが楽しかったです! :)

ボーナス ポイント: Powershell に送信されたコマンドをスレッド化できます。したがって、Powershell コンソールのタイトル属性を変更する場合は、次のようにします。

\"cd '%1';(get-host).ui.rawui.windowtitle = 'Oompa Loompa'"

コマンド間にセミコロンを追加するだけです。

楽しい砲撃

于 2012-12-03T20:12:48.067 に答える
13

concfg ツールscoopを使用して、Powershell の色とフォントをインストールすると非常に便利であることがわかりました。

  1. インストールスクープ:

    iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
    
  2. concfg をインストールします。

    scoop install concfg
    
  3. Solarized テーマをインストールします。

    concfg import solarized
    

それだけです、作者に感謝します!

于 2017-01-02T13:52:05.587 に答える
6

システム メニュー (ウィンドウの左上にある PowerShell アイコン) をクリックし、[既定値] をクリックします。ここで既定の色を変更できます。これは、PowerShell Prompt Here コマンドによって尊重されます。

から: https://superuser.com/a/523017/109736

于 2013-07-23T16:53:09.053 に答える
6

これを行う正しい方法は、レジストリを使用することです

cd hkcu:/console
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni $0 -f
sp $0 ColorTable00 0x00562401
sp $0 ColorTable07 0x00f0edee
于 2014-05-18T00:08:39.180 に答える
3
  1. コマンドを実行regeditしてレジストリ エディタを開きます
  2. HKEY_CURRENT_USER > CONSOLE念のため、エクスポートしてフォルダ全体を追跡してバックアップします
  3. フォルダを削除する

Powershell を再起動します。カラー スキームがデフォルトにリセットされている必要があります。

注: 保持したい PowerShell (またはコマンド プロンプト、Git Bash など) に関連するその他の設定がある場合は、コンソール フォルダーをさらに調べて、適切なキーを削除してください。

于 2017-12-05T14:23:01.223 に答える
1

これが私の解決策でした(システムとして起動するスクリプトで色を設定します)。必要以上かもしれません(私自身の答えを見てください):

https://superuser.com/questions/891519/using-psexec-to-launch-powershell-session-as-system-with-specific-window-attribu

于 2015-04-17T16:06:08.150 に答える