batファイル 日付 フォルダ 時間 ファイル

ブログをはじめた時に作っていたcreate_file.batがまあまあできてきていると思う。

とりあえず生成部分を書きますw

@echo off

setlocal enabledelayedexpansion

 

REM 日にち取得

set newdate=%date:/=_%
echo %newdate%

if not exist %newdate% (mkdir %newdate%)
cd=%newdate%


REM 時間取得

set t=%time::=m%

set t=%t:~0,5%

set t=%t%s

if exist %t%.txt (%t%.txt) else (type %t%.txt >> %t%.txt && %t%.txt)

 

endlocal

 

 

 

 

>set newdate=%date:/=_%

この部分で%date%の中身が 2013/02/02 などの今日の日付になっているのですが、フォルダ・ファイル名は「/」という文字は使用できないので%date%に含まれている「/」を「_」(アンダーバー)に変換するという処理をおこなっています。(2013_02_02になります)

 

 >if not exist %newdate% (mkdir %newdate%)

フォルダが無い場合生成してます。

 

>set t=%time::=m%

%time%には現在の時間(例えば12時だった場合12:00:00.00と秒単位)を表示します。今回も上での説明と同じように「:」はフォルダ・ファイル名に使用できませんので「:」をm(分)に変更しています。(12m00m00.00となります)

 

>set t=%t:~0,5%

入っている数値(文字)を5個までにします。(12m00)

 

>set t=%t%s

最後にs(second)を付け足して終了ですw(12m00s)

まだまだしょぼいですが、また機会があれば作りたいと思います。