バッチファイル | ドロップしたファイルのファイル名をコピーするサンプルコード

2023-09-12バッチファイル サンプル集,コマンドプロンプト

バッチファイル | ドロップしたファイルのファイル名をコピーするサンプルコード

バッチファイルにドロップしたファイルのファイル名をクリップボードにコピーするコマンドです。

Windowsでは「F2」でファイル名の変更状態にして「Ctrl + C」でファイル名をコピーする手順が一般的だと思いますが、PC作業にて利用する頻度が高いため、もう少し手軽にファイル名をコピーできないものか模索しています。

バッチファイル(.bat)で対処しようと探しても、なかなか目的のものが見つからなかったので作成してみました。

ファイル名をクリップボードにコピーするバッチファイル

選択しているファイル名をクリップボードにコピーするバッチファイルのサンプルになります。

以下のコマンドはファイルの拡張子を含まないファイル名のみをクリップボードにコピーします。

@echo off
set file_name=%~n1
echo %file_name% | clip

ファイルの拡張子も一緒にコピーする場合は以下のコマンドで対応可能です。

@echo off
set file_name=%~nx1
echo %file_name% | clip

使い方としては、ファイルの右クリックメニュー(コンテキストメニュー)から作成したバッチファイルに「送る」を実行する事も考えられますが、特にWindows11ではコンテキストメニューが変更されており「F2」+「Ctrl + C」より手数が圧倒的に増えてしまい本末転倒です。

というわけで、支障がなければデスクトップに配置しておいて、ファイル名をコピーしたいファイルをドロップする事でファイル名を取得する事ができるようになります。

ファイルをバッチファイルにドロップ
ファイルをバッチファイルにドロップ

※キャプチャ画像はバッチファイルのショートカットです。

この作業でクリップボードにドロップしたファイル名がコピーされます。

クリップボードにファイル名がコピーされる
クリップボードにファイル名がコピーされる

Windows11ではファイルをタスクバーのアプリに投げて開く、という事が現在は出来ない状態ですのでデスクトップ配置しか方法がないかもしれません。

理想的には「設定したショートカットキーで選択しているファイルをバッチファイルに投げて実行する」という処理が出来たらと考えますが方法がわかりません。

PowerShellの実行ファイルで作成する方法は以下のページで紹介しています。
PowerShell | ドロップしたファイルの名前をコピーするps1ファイル | ONE NOTES