shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Windows】クリップボードの値をバッチファイルで処理する方法

BATファイル(バッチファイル)は、Windows環境で簡易的なプログラムを実行できるツールです。今回はバッチファイルを使った自動化の例として、クリップボードの値を処理する事例です。利用できる場面等の用途は限定されそうですが、クリップボードの値を読み取り、加工し、クリップボードに戻す事例です。

確認したwindowsはWindows11 24H2です。

事例の前提

以下で紹介のとおり、Windows11のエクスプローラーで選択したファイルがハイライトされた状態で、「Ctrl+Shift+C」を押し、「パスのコピー」をします。選択したファイルのフルパスをコピー後、バッチファイルでファイル名だけの一覧に加工します。

shikumika.org

バッチファイルの内容

バッチファイルの内容は以下のとおりです。

設定方法が不明な場合は、【Windows】選択したファイル名の一覧をクリップボードにコピーする方法 - shikumika’s diary を参考に設定方法を確認してください。

@echo off
setlocal enabledelayedexpansion

:: ファイル名のリストを初期化
set "fileList="

:: クリップボードからデータを1行ずつ取得してファイル名をリスト化
for /f "delims=" %%F in ('powershell get-clipboard') do (
    set "fileList=!fileList!%%~nxF^&echo."
)

:: リストをクリップボードにコピー
echo !fileList! | clip

:: 完了メッセージ
echo ファイル名の一覧がクリップボードにコピーされました。
pause
補足説明

バッチファイル単独では、クリップボードから値を取得できないため、PowerShellコマンド get-clipboard を呼び出して、クリップボードの内容を1行ずつ処理しています。。

使い方

使用方法は、事例の前提のとおり、Windows11のエクスプローラーでファイルを選択、「Ctrl+Shift+C」でファイルのパスをクリップボードにコピーします。

その後、バッチファイルを実行、完了後に必要な場所に貼り付けをします。

バッチファイルにショートカットキーを割り当てするのも便利です(若干、動作の反応が悪く感じましたが)

shikumika.org

以上、Windowsでクリップボードの値をバッチファイルで処理する事例でした。

クリップボードの値を対象に処理できるようになると、バッチファイルの活用範囲が広がります。