スクリーンショットのファイル名を一括で変更する

スクショのファイル名を一括変更する方法

スクショ撮るときに思うこと

みなさんは、WindowsのPCでスクショを撮るとき、どうしてますか?

いろいろと方法はありますが、私がブログを書き始めてからよく利用するのは、[Windowsキー]+[Altキー]+[PrintScreenキー]です。

これはアクティブウィンドウだけをスクショして、そのままpngファイルとして保存してくれるので便利なんですが、1つだけ不便に思ってることがあります。

勝手につけられるファイル名が気に入らない

私の場合、PCに「Xbox Game Bar」というのが入っていて、[Win]+[Alt]+[PrtSc]で撮ったスクショはXbox Game Barを通じて保存されているようです。

別にそれ自体は構わないんですが、保存時に付けられるデフォルトのファイル名が、

[ウィンドウタイトル]_[年]_[月]_[日] [時]_[分]_[秒].png

となってしまいます。

具体的には、こんな感じ↓

名前順に並べた時

ちょっと分かりづらいですが、Chrome、Firefox、エクスプローラーの3つのアプリを行ったり来たりして1分おきにスクショを撮ってみました。

「_」はまだ許せるとして、最初に来る「ウィンドウタイトル」が厄介です。ファイル名順に並び変えた時に、当然ですが時系列がバラバラになってしまいます。

同じアプリのみでスクショを撮っていくなら、気にしなくてもいいですが、手順を説明したりする時など、いろんなアプリを切り替えながらスクショしていくときにはちょっと不便です。

もちろん、日付時刻順に並べたら、撮影した順番に並んでくれます。

日付時刻順に並べた時

日付時刻順でソートすればいいじゃんと思う方もいるかもしれませんが、私個人的にはファイル名順に並んでいた方が何かと扱いやすいので、デフォルトのファイル名を日付と時刻のみのファイル名にできないか調べてみました。

結論

軽く調べた感じ、Xbox Game Barで保存されるスクショの名前を変更する方法が見当たりませんでした

Xbox Game Barをオフにしてみたりしたんですが、そうするとスクショ自体が撮れなくなってしまいました…

とはいえ、このままでは不便なことに変わりはないので、デフォルトのファイル名で保存された後に、batファイルで名前を変えることにしました。

以下がその内容です。

@echo off

echo ファイル名を変更します。
pause

for %%i in (*.png) do (
	call :func "%%i"
)
exit /b


:func
rem 引数の受け取り
set old_name=%1

rem 日付を取り出して、「_」を削除
set ymd=%old_name:~-24,10%
set ymd=%ymd:_=%

rem 時刻を取り出して、「_」を削除
set hms=%old_name:~-13,8%
set hms=%hms:_=%

rem 新しい名前の作成
set new_name=%ymd%_%hms%.png

rem 名前の変更
rename %1 %new_name%

これをメモ帳などのテキストエディタに張り付けて保存した後、テキストファイルの「.txt」部分を「.bat」に変えれば準備完了です。

あとはファイル名を変更したい画像と、先ほど作成したbatファイルを同じフォルダに入れて実行するだけです。

bat実行前
bat実行後

はい、bat実行後は名前順に並べても時系列になりました。やっぱこの方が扱いやすいですね。

実行してみて思ったんですが、ウィンドウタイトルもあった方がいいかなと思えてきました。日付と時刻だけではどんなファイルなのかちょっと分かりづらいような…。

とりあえず、当初の目的は達成できたので、これで良しとします。ウィンドウタイトルを付けるのも、ちょっと面倒な気もしますが、できなくはないと思うので、また後日やってみたいと思います。

  • URLをコピーしました!

コメント

コメントする