Home > Windows にまつわる e.t.c.

計算結果を PowerShell でカンマ付きにしてクリップボードに格納する


計算結果をカンマ編集してクリップボードに格納する「AddComma」フィルタ書きました

 

コマンド実行結果を表示しつつクリップボードに格納する

コマンド実行結果をクリップボードにセットする方法として clip.exe を使う方法が良く知られています

例えば、dir の結果をクリップボードにセットのであれば「dir | clip」とします

 

この場合は、コマンド結果が clip.exe にリダイレクトされてしまい、dir 結果を確認するには、クリップボードに格納されている内容を何かにペーストしなくてはなりません

コマンド実行結果のクリップボード格納格納と、実行結果表示を両立させるのには、PowerShell の「Set-Clipboard -PassThru」を使うと実現できます

Set-Clipboard は「scb」とエリアスがセットされているので、「scb -PassThru」とすれば OK です
(-PassThru オプションは -p[TAB]で補完できます)


(※ Windows Powershell 5.x は -PassThru オプションに対応していないので、カンマ編集と echo を別に処理する必要があります)

 

計算結果をカンマ編集してクリップボードに格納する

PowerShell は計算式を入力すると、計算結果を表示できるので、電卓アプリより便利だったりします

 

ただ、そのままだと、計算結果がカンマ編集されないので、桁数が大きいと結果確認に難があります

そんなところにも柔軟に対応できるのが、PowerShell の利点なので、ToString を使ってカンマ編集させるとこんな感じになります

 

これを「scb -PassThru」にリダイレクトしてクリップボードに格納に格納すれば良いですが、この呪文を都度入力するのは現実的はありませんね

 

フィルタとして実装する

PowerShell でリダイレクトを受け取る方法としてフィルタを書く手があります

コードにするとこんな感じです

filter AddComma{
    $_.ToString("#,0.##########") | Set-Clipboard -PassThru
}

 

こいつを組み込んでしまえば、面倒な呪文を書かなくでも「AddComma」にリダイレクトすれば、カンマ編集とクリップボード格納が出来ます
(addc[TAB]でAddCommaに補完できます)

 

フィルタの組み込み

以下を PowerShell にコピペすれば「AddComma」フィルタがオンラインインストールされます

$ModuleName = "AddComma"
$GitHubName = "MuraAtVwnet"
Invoke-WebRequest -Uri https://raw.githubusercontent.com/$GitHubName/$ModuleName/master/OnlineInstall.ps1 -OutFile ~/OnlineInstall.ps1
& ~/OnlineInstall.ps1

 

フィルタの Uninstall

以下コマンドを入力すると「AddComma」は Uninstall されます

& ~/UnInstallAddComma.ps1

 

更新チェック

簡単なフィルタなので更新は無いと思いますが、「AddComma」には更新チェック機能があります

AddComma -VertionCheck

このように入力すると、更新があった場合フィルタが更新されます

 

動作確認環境

PowerShell 7.5.2(Windows 環境で確認しましたが、Linux でも動くはず)
Windows PowerShell 5.1

リポジトリ

以下リポジトリで一式公開しています

https://github.com/MuraAtVwnet/AddComma
git@github.com:MuraAtVwnet/AddComma.git

 

back.gif (1980 バイト)

home.gif (1907 バイト)

Copyright © MURA All rights reserved.