プレインストールされたショートカットの1つから起動すると、PowerShellウィンドウの素敵な青い色が表示されます。ただし、powershell.exeを手動で起動すると、これらの色は表示されず、黒/白が表示されます:(
これは、デフォルトの設定がショートカット(.lnk)ファイルで設定されているためです。
Explorerのコンテキストメニューに「PowerShell Prompt Here」というエントリがあります。通常のショートカットと同じ素敵な色を使用してPowerShellを起動したいと思います。黒はひどく、異なる色のウィンドウを使用するのは混乱します(特に、昔ながらのコマンドウィンドウを黒で頻繁に開いている場合は特にそうです!)。
これを設定しようとすると、これまでに2つの問題が見つかりました。
PowerShellをコマンドラインから起動する方法はありますか(つまり、エクスプローラーのコンテキストメニュー項目としてレジストリに埋め込むことができます)、ショートカットと同じ設定を使用しますか?
これは本当に簡単な方法です:
スタート-> "sysdm.cpl"を実行->詳細設定->環境変数
システム変数を下にスクロールし、PATHEXTをダブルクリックします
.LNKを追加します。以下に示すように:
Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"
C:\ Windows\System32の.lnkを好みに合わせてさらにカスタマイズできます。
これは、許容される拡張子のリストに.lnkを追加し、デフォルトでc:\ windows\system32が検索パス(PATHシステム変数)の最初の項目であるためにのみ機能することに注意してください。
これは、cmd.exeを介して起動された場合、コンソールをカスタマイズしません。
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コンソールのtitle属性を変更する場合:
\"cd '%1';(get-Host).ui.rawui.windowtitle = 'Oompa Loompa'"
コマンド間にセミコロンを追加するだけです。
ハッピーシェリング
プロファイルスクリプト($ 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
concfg tool および scoop を使用して、Powershellの色とフォントをインストールすると非常に便利だとわかりました。
Scoopをインストールします。
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
Concfgをインストールします。
scoop install concfg
インストール Solarized theme :
concfg import solarized
著者のおかげです!
システムメニュー(ウィンドウの左上にあるPowerShellアイコン)をクリックし、[デフォルト]をクリックします。ここでデフォルトの色を変更することができ、PowerShell Prompt Hereコマンドで尊重されます。
これを行う正しい方法は、レジストリを使用することです
cd hkcu:/console
$0 = '%systemroot%_system32_windowspowershell_v1.0_powershell.exe'
ni $0 -f
sp $0 ColorTable00 0x00562401
sp $0 ColorTable07 0x00f0edee
regedit
コマンドを実行してレジストリエディターを開きますHKEY_CURRENT_USER > CONSOLE
および念のためにエクスポートしてフォルダ全体をバックアップしますPowershellを再起動します。配色はデフォルトにリセットされている必要があります。
注:PowerShellに関連する他の設定(またはコマンドプロンプト、Git Bashなど)を保持する場合は、コンソールフォルダーをさらに調べて適切なキーを削除してください
これが私の解決策でした(システムとして起動するスクリプトに色を設定する)。あなたが必要とする以上のものがあるかもしれません(私自身の答えを見てください):
@ rex-hardin excellent answer に基づいて、ここでregeditコンテンツを改善してアイコンを追加し、PowerShellネイティブ引数を使用して正しいパスで開始します。
コンテキストメニューは、ディレクトリの背景を右クリックしたとき、およびディレクトリアイコンを直接右クリックしたときに有効になります。
もちろん、デフォルトの背景とまったく同じ青色の背景を持つコンソールも実行します。
.LNK
」拡張子を%PATHEXT%
環境変数に追加しますこれにより、システムは.lnk
拡張子(ショートカットの隠し拡張子)でファイルを実行できます
powershell
ファイルとしてsystem32にコピーしますこれにより、powershell
コマンドがsystem32
フォルダー(%PATH%
にある)からショートカットを起動できます。
エクスプローラー(コピー+名前の変更)または以下のコマンドラインを使用します。
Copy-Item "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Accessories\Windows PowerShell\Windows PowerShell.lnk" "C:\Windows\System32\powershell.lnk"
powershell_here.reg
ファイルに追加して実行します。powershell_here.reg
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\directory\background\Shell\PowerShell]
@="PowerShell Here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
[HKEY_CLASSES_ROOT\directory\background\Shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%V'"
[HKEY_CLASSES_ROOT\directory\Shell\PowerShell]
@="PowerShell here"
"Icon"="%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe"
[HKEY_CLASSES_ROOT\directory\Shell\PowerShell\command]
@="cmd.exe /c start powershell -NoExit -NoProfile -Command Set-Location -LiteralPath '%L'"