【bat】バッチファイルで日付と時間をファイル名に挿入する方法

バッチファイルを使って日常のタスクを自動化することは非常に便利です。特に、ファイル名に日付や時間を挿入することで、ファイルの管理がより効率的になります。この記事では、バッチファイルを使ってファイル名に日付と時間を挿入する方法について詳しく説明します。

スクリプトの概要

以下のスクリプトは、現在の日付と時間を取得し、それを利用してファイル名を生成する方法を示しています。このスクリプトを実行すると、例えば myfile_2024-06-11_134530.txt のように、日付と時間が埋め込まれたファイルが作成されます。

サンプルスクリプト

@echo off
:: 日付と時刻の取得
for /F "tokens=2 delims==" %%I in ('"wmic os get localdatetime /value"') do set dt=%%I

:: フォーマットの整形
set yyyy=%dt:~0,4%
set mm=%dt:~4,2%
set dd=%dt:~6,2%
set hh=%dt:~8,2%
set min=%dt:~10,2%
set ss=%dt:~12,2%

:: フォーマット済みの日時を使用してファイル名を作成
set filename=myfile_%yyyy%-%mm%-%dd%_%hh%%min%%ss%.txt

:: ファイル作成の例
echo This is a test file. > %filename%

:: 結果の表示
echo Created file: %filename%

日付と時刻の取得

最初の部分では、wmic os get localdatetime /value コマンドを使用して現在の日付と時刻を取得し、dt という変数に設定します。

for /F "tokens=2 delims==" %%I in ('"wmic os get localdatetime /value"') do set dt=%%I

フォーマットの整形

次に、取得した日付と時刻の文字列から、年、月、日、時間、分、秒をそれぞれ切り出して変数に設定します。

set yyyy=%dt:~0,4%
set mm=%dt:~4,2%
set dd=%dt:~6,2%
set hh=%dt:~8,2%
set min=%dt:~10,2%
set ss=%dt:~12,2%

ファイル名の作成

これらの変数を使用して、ファイル名を生成します。この例では、myfile_YYYY-MM-DD_HHMMSS.txt という形式のファイル名が作成されます。

set filename=myfile_%yyyy%-%mm%-%dd%_%hh%%min%%ss%.txt

ファイルの作成

作成したファイル名を使用して、新しいファイルを作成します。

echo This is a test file. > %filename%

結果の表示

最後に、作成したファイル名を表示します。

echo Created file: %filename%

まとめ

このスクリプトを使用することで、日付と時間を含むファイル名を簡単に生成し、管理することができます。バッチファイルの自動化によって、作業の効率が大幅に向上するでしょう。ぜひ、このスクリプトを参考にして、日常のタスクを自動化してみてください。