none
Get-StartApps コマンドの出力をクリップボードで受け取る方法について RRS feed

  • 質問

  • Get-StartApps コマンドの出力をクリップボードで受け取りたいのですが

    起動したままのウィンドウサイズの状態だと長い文字列の場合に末尾が「...」になってしまいます。

    PowerShell 上で Get-StartApps | clip を実行すると文字化けを起こします。

    コマンドプロンプト上で PowerShell "Get-StartApps" | clip なら文字化けしないのですが

    こちらも長い文字列の場合に末尾が「...」になってしまいます。

    コマンドプロンプトのウィンドウサイズの横幅を広げて実行して凌いでいます。

    文字化けせず、ウィンドウサイズの変更もしないで受け取る方法はありますでしょうか?

    2017年11月21日 3:24

回答

  • こんにちは。
    ちょっとややこしいのですが、PowerShell内部から外部のプロセス(ここではclip.exe)にパイプする際のエンコーディングは $OutputEncoding で決まり、これがデフォルトASCIIなため文字化けが発生してしまいます。  
    これを解消するには $OutputEncoding を日本語が表示可能なもの(日本語Windowsなら[System.Text.Encoding]::Default、または [System.Text.Encoding]::GetEncoding(932))に変更する必要があります。

    また、PowerShellにおける文字表示は多くの場合コンソール幅によって決まり、コンソール幅を超えると省略文字によって省略されることがあります。  
    これはOut-Stringコマンドレットを使い文字幅を指定することで回避することが可能です。

    これらをまとめて以下の様にすれば期待した動作になるかと思います。

    $OutputEncoding = [System.Text.Encoding]::Default
    # または $OutputEncoding = [System.Text.Encoding]::GetEncoding(932)
    Get-StartApps | Out-String -Width 1024 | clip

    2017年11月21日 4:13

すべての返信

  • こんにちは。
    ちょっとややこしいのですが、PowerShell内部から外部のプロセス(ここではclip.exe)にパイプする際のエンコーディングは $OutputEncoding で決まり、これがデフォルトASCIIなため文字化けが発生してしまいます。  
    これを解消するには $OutputEncoding を日本語が表示可能なもの(日本語Windowsなら[System.Text.Encoding]::Default、または [System.Text.Encoding]::GetEncoding(932))に変更する必要があります。

    また、PowerShellにおける文字表示は多くの場合コンソール幅によって決まり、コンソール幅を超えると省略文字によって省略されることがあります。  
    これはOut-Stringコマンドレットを使い文字幅を指定することで回避することが可能です。

    これらをまとめて以下の様にすれば期待した動作になるかと思います。

    $OutputEncoding = [System.Text.Encoding]::Default
    # または $OutputEncoding = [System.Text.Encoding]::GetEncoding(932)
    Get-StartApps | Out-String -Width 1024 | clip

    2017年11月21日 4:13
  • 素早い返信ありがとうございます。

    目的の動作が得られたので、こちらはクローズさせて頂きます。


    ここで調べていたら

    Windows 10 デスクトップ エディションのスタート画面のレイアウト XML (リファレンス)
    https://docs.microsoft.com/ja-jp/windows/configuration/start-layout-xml-desktop

    これだけ書かれていて

    Get-StartApps
    https://technet.microsoft.com/library/dn283402.aspx

    他に情報が無くて助かりました。



    2017年11月21日 10:25