PowerShellでCSV(カンマ区切り)データをExcelに貼り付ける

コンピュータ
PowerShellでクリップボード内のテキスト(CSV形式)を置換します。

使い方
CSV形式のファイルをメモ帳などで開き中身をコピーしPowerShellで以下のスクリプトを実行。Excelのワークシートに貼り付ける。
ファイル名:CsvToClip.sp1

<#
.SYNOPSIS
クリップボード内のカンマ区切りのデータをタブ区切りに置き換える

.DESCRIPTION
Excelへ貼り付け用

.EXAMPLE
CsvToClip.ps1

#>

$ErrorActionPreference = "STOP"

$tmp = New-TemporaryFile

Get-Clipboard -Format Text | Out-File -FilePath $tmp.FullName

Import-Csv -LiteralPath $tmp.FullName |
% -Begin {
    $i = 0
} -Process {
    $v = $_
    if ($i -eq 0) {
            ($v.psobject.properties.name) -Join "`t"
    }
    ($v.psobject.properties.name | % { $v.$_ }) -Join "`t"

    $i++
} | clip
クリップボード→スクリプト→クリップボードとするために、色々回りくどい作りになってしまいました。
CSVファイルをスクリプトで読み込むようにした方が素直な感じになります。
また、Import-CSVの結果から項目名と値を取得する方法も回りくどい感じです。
こちらは別な方法を見つけることは出来ませんでした。

簡易版はこちら
Powershellでクリップボードを操作するサンプル
ちょっとした処理でもコードが長くなりがちなPowershellですが、クリップボードには簡単にアクセス出来るようです。 クリップボードへ文字列の出力とクリップボードから文字列を取り出すだけの面白味にかけるサンプルを作ってみました。 サン...

コメント