1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バッチファイルによる名前変更について ドラッグドロップ編

Last updated at Posted at 2024-08-29

はじめに

投稿者はプライベート用事により大量のPDFファイルを使用することがあります。
これらを一定の決まったファイル名にすることがあるのですが、いちいち「右クリック→名前の変更」や「F2キー」を対応するとかなり面倒なことになります。
 例:時間がかかる、ミスタイプの発生
 例:一定でないファイル名

というわけで、今回はドラッグドロップによるファイル名の記名を行っていきたいと思います。

前置き

・PDFファイルの名前変更を取り扱います。
※PDFファイル以外でも使用できると考えております(未検証)。

本題

その1 固定の名前に変更

例:○○.pdfを「hogehoge.pdf」に変更

cmd01.bat
@echo off
ren %1 hogehoge.pdf

使用方法

・適当なバッチファイルに保存する
・保存したバッチファイルに、名前変更したいPDFファイルをドラッグドロップ

解説

@echo off

詳細

@echo off:起動したcmd.exeに表示させなくする
ややうっとうしいので固定で入れました。お好みで。
参考:https://qiita.com/Sanada-code/items/5d21d885b732e6fb0d03

ren

詳細

ren:リネーム(名前変更)のコマンド。renameでも同様。それぞれ大文字でも同様。
参考:https://www.javadrive.jp/command/file/index3.html

%1

詳細

%1:引数1つ目 ドラッグドロップした場合はファイル名(パス付き)が入ってます。
参考:https://www.javadrive.jp/command/bat/index6.html

要するに「どこにあろうが○○.pdfをhogehoge.pdfに変更する」というバッチができました。

その2 後連番つきの名前に変更

例:○○.pdf、△△.pdfを「hogehoge_1.pdf」「hogehoge_2.pdf」に変更

cmd02.bat
@echo off
setlocal enabledelayedexpansion

set num=1
for %%f in (%*) do (
    ren %%f hogehoge_!num!%%~xf
    set /a num=num+1
)

endlocal

使用方法

・適当なバッチファイルに保存する
・保存したバッチファイルに、名前変更したいPDFファイルををすべて選択してドラッグドロップ
※基本的に「並べ替え→本バッチを起動」の順で起動することを推奨。また、ドラッグドロップの際は選択したファイルのうち一番上をドラッグすることを推奨します。それ以外の動作を行った場合、連番の挙動は保証できません。

解説

setlocal enabledelayedexpansionendlocal

詳細

setlocal enabledelayedexpansionendlocal:遅延環境変数
魔境です。各自ぐぐっていただいた方が早いと思います。
ちなみに今回は連番用の変数numを遅延環境変数として扱っております。
参考:https://qiita.com/tana_tomo_1025/items/7f824a154f004f610386

for

詳細

for:繰り返し
魔境です。各自ぐぐっていただいた方が早いと思います。
ちなみに今回の文章だとループ変数が%fとなっております。
参考:https://qiita.com/plcherrim/items/67be34bab1fdf3fb87f9

%*

詳細

%*:引数*つ目 for文の中に入れてあるこの書き方の場合、「引数をすべて処理する」という意味になります。

%%~xf

詳細

%%~xf:変数%fからファイル名の拡張子を抽出
ここのサイトがわかりやすいです。
参考:https://rainbow-engine.com/batch-get-filepath-filename/

set /a

詳細

set /a:変数への代入
ここを見てください。
参考:https://qiita.com/plcherrim/items/9cba5a42273e10915c8f

要するに「どこにあろうが○○.pdfその他を一括でhogehoge_*.pdfに変更する」というバッチができました。
正直遅延環境変数にする必要なさそうなのですが(※未検証)、まあこれで思った通り動くから良いか…

あとがき

投稿者はこれを300ファイルくらい作って活用しております。
不明点・誤字・誤り等ございましたらコメントください。お待ちしております。

今後の予定

・バッチファイルによる名前変更について ダブルクリック編

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?