0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

PowerShellの色を変える

Posted at

現象

Windows PowerShellからsshで接続後、lsすると全く文字が見えない。
オプションで背景色や一部の文字色を変更可能だが、細かく設定できない上に
変更できない文字色がクソ配色なせいで、どんな色にしても何かの文字が見えなくなる。
image.png

解決方法

MicrosoftがPowerShellの色変更ツールを提供している。
GitHubからzipファイルがダウンロードできる。

zipの中身はexeファイルとschemesフォルダ(配色セットのファイルが格納されている)。
zipを適当な場所に解凍し、PowerShellで下記コマンドを実行。

$ .\path\to\ColorTool.exe -b campbell.ini

設定後の配色はこんな感じ。PowerShellウィンドウを閉じると、設定はクリアされるため注意。
image.png

永続化について

PowerShell起動時に実行されるファイル(.bashrcみたいなもの)で前述のコマンドを実行すれば
起動するたびに自動で設定反映することができる。

以下、作業手順。

  1. 起動時に実行されるファイルを調べる
    下記コマンドで調べられる。

    $ $profile
    C:\Users\xxxxxxx\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1
    
  2. 格納フォルダを作成
    自分の環境にはWindowsPowerShellフォルダが存在しなかったため、フォルダを新規作成。

  3. ps1ファイルを作成
    ひとまず空のテキストファイルでMicrosoft.PowerShell_profile.ps1を作成。

  4. ColorToolを配置
    C:\Users\xxxxxxx\Documents\WindowsPowerShell\ColorTool\ColorTool.exe に配置。
    schemesフォルダもzipの構成のまま配置した。
    ColorToolはどこに置いてもよいが、ps1ファイルと一緒に置くのがよいと判断した。

  5. ps1ファイルを記述

    C:\Users\xxxxxxx\Documents\WindowsPowerShell\ColorTool\ColorTool.exe -b campbell.ini
    
  6. ps1ファイルの実行権限を付ける
    Linuxみたいにファイルに付けるのではなく、PowerShellがps1ファイルを実行する・しないを設定する。
    管理者モードでPowerShellを起動し、下記コマンドを実行する。

    Set-ExecutionPolicy RemoteSigned
    
  7. 動作確認する
    新たにPowerShellを起動し、ColorToolが自動で動けば成功。


フォルダ構成まとめ

C:\Users\xxxxxxx\Documents\WindowsPowerShell
├───Microsoft.PowerShell_profile.ps1
└───ColorTool
    ├───ColorTool.exe
    └───schemes
        ├───campbell.ini
        ├───   :
        ├───
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?