PowerShellでクリップボードの画像をデスクトップに保存する

toc目次

はじめに

PowerShell関連のメモ。

クリップボードの画像をデスクトップに保存する

PowerShellで以下のスクリプトを実行すると、クリップボードにコピーした画像をデスクトップに保存できます。

Add-Type -AssemblyName System.Windows.Forms

if ([Windows.Forms.Clipboard]::ContainsImage()) {
    $image = [Windows.Forms.Clipboard]::GetImage()
    $desktop = [Environment]::GetFolderPath("Desktop")
    $timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
    $outputFilePath = Join-Path $desktop "clip_${timestamp}.png"
    $image.Save($outputFilePath)
}

バッチファイルでクリップボードの画像をデスクトップに保存する

バッチファイルに修正すると、バッチ実行でクリップボードにコピーした画像をデスクトップに保存できるようになります。

@PowerShell -NoProfile -ExecutionPolicy Bypass "&([ScriptBlock]::Create((cat \"%~f0\" | ?{$_.ReadCount -gt 1}) -join \"`n\"))" %* & goto:eof

Add-Type -AssemblyName System.Windows.Forms

if ([Windows.Forms.Clipboard]::ContainsImage()) {
    $image = [Windows.Forms.Clipboard]::GetImage()
    $desktop = [Environment]::GetFolderPath("Desktop")
    $timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
    $outputFilePath = Join-Path $desktop "clip_${timestamp}.png"
    $image.Save($outputFilePath)
}