Think Twice
IT技術メモ | PowerShellのメモ
Created: 2021-05-20 / Updated: 2021-05-20

PowerShellで矢印などの全角文字が消えてしまう


目次


動作確認バージョン

Windows

Microsoft Windows
バージョン 20H2 (OS ビルド 19042.985)

PowerShell

Copy
PS C:\Users\fumo> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.19041.906
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.19041.906
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

事象

PowerShellで矢印などの全角文字を含むパスをドラッグ&ドロップすると、矢印部分が失われてしまうという事象が発生しています。
以下イメージを参照して下さい。

原因と対策

原因

本事象は、Windows の Powershell の問題として認識しており、次期バージョンにて問題が修正されるよう障害情報には登録をしております。
なお恐れ入りますが現行製品では現時点で修正は予定されておりません。その場合は、モジュール PSReadLine をアンインストールすることで表示が不正となる問題は発生しなくなります。

// PSReadLine のアンインストール コマンド
Remove-Module PSReadline

※ ご注意
上記コマンドにて PSReadLine をアンインストールすると、文字の表示を色付けする機能が無効になるため、入力中の色分けが行われなくなります。
ご利用いただいている環境や運用状況に応じて、パスやファイル名、アイテム名を 1 バイト文字に統一するか、PSReadLine をアンインストールして色分け機能を無効にした状態で使用するか、いずれかをご検討いただきますようお願いいたします。

PowerShell で全角文字を入力すると表示がおかしくなる問題についてより

PSReadLine というモジュールでPowerShellコンソール中での自動色付け機能を実現しているようですが、その機能の既知のバグのようです。

対策

上記、原因にて書かれている Remove-Module PSReadline コマンドにて、自動色付け機能を一時的に無効にすることで、文字が消えなくなるようです。
実際に試してみたものが以下イメージとなります。

なお、再度自動色付け機能を使いたい場合は、PowerShellコンソールを立ち上げ直してください。
基本的に色付けは補助機能なので無くても困らないかな。


参考

関連ツイート

関連リンク