• Excel
    【Excel】セル同士の参照先を確認できる「トレース機能」がかなり役立つのでみんなで使おう
    2014年12月8日
  • 旅行
    【成田空港】ターミナル2に深夜到着・早朝便を待ってみた 快適に過ごすにはココがオススメ(2018年版)
    2018年2月20日
  • クラウドストレージ
    米国版AmazonDriveでアプリを使う設定方法【Mac】
    2017年5月25日
  • Webサイト
    Instagramをさらに面白くする10つのIFTTT連携レシピ
    2014年7月12日
  • Windows
    日本語入力がおかしくなってしまったのでIMEの辞書を修復しました。(Windows7版)
    2013年12月30日
  • 旅行
    トリップアドバイザーを活用してノーコストで500マイル手に入れた話 旅好きのANAマイラーは必ずやっておくべし
    2015年12月5日
  • Windows
    Windows標準機能でHDDのデータを完全消去する方法
    2016年4月30日
  • Webサイト
    国土サイズを地図上で自由に比較できるサイト「The True Size Of...」
    2017年11月5日
  • iPhone
    これは好みだ…写真にノスタルジックなエフェクトをかけられるiPhoneアプリ『Vintique』
    2013年7月20日
  • フィリピン
    フィリピンで2週間データ通信無制限のSIMカードを買ってみた (2016年2月版)
    2016年2月15日
  • Windows
    黒画面に白カーソルが点滅してWindowsが起動しない問題を解決してみた(Boot順の変更)
    2015年10月14日
  • 鹿児島
    「薩摩富士」と名高い日本百名山の「開聞岳」に登ってきた この素晴らしい眺望を御覧ください
    2015年11月23日
  • Mac
    【Mac】アカウント名と画面に表示される名前を変更する方法
    2018年1月15日
  • 旅行
    銀座でアボカド・キヌア食べ放題! シュラスコ料理を食べてきたよ。 「Toro Gastro Bar Tokyo」
    2015年4月8日
  • 音楽
    サマソニ2016行ってきた - Day2はメッセ内で快適ファンク三昧!+レディオヘッドでクリープの巻
    2016年8月28日
  • 鹿児島
    【屋久島】「宮之浦岳」に再挑戦!  2年前の大雨の山頂のリベンジは果たせたか否か
    2016年9月19日
  • iPhone
    超ローテクだけど確かな満足。 たった1秒で始められる、iPhoneのシャッター音を小さくする原始的な方法。
    2014年2月1日
  • 旅行
    有効期限切れ直前のマイルを無駄にしたくないなら「ANAスカイコイン」に交換するが吉
    2015年10月22日
  • Excel
    【Excel】常に上書き保存をするクセを付けておくべき1つの理由
    2015年4月16日
  • Webサイト
    【節約】Expediaを使って、宿や飛行機の予約で通常より遥か多くのANAマイルを加算する3つの方法
    2015年3月3日
  • インドネシア
    【バリ】インドネシア入国時に帰りのチケットを要求されるか確認してみた(2018年版)
    2018年3月30日
  • Excel
    【Excel】最速でセルの先頭にカーソルを移動させる時短テクニック
    2012年11月24日
  • Excel
    Excel/Word 2007/2010で上部のメニュー(リボン)を非表示にするショートカットキー
    2012年6月2日
  • Excel
    【Excel】複数セルのデータを順番そのままで反転する方法
    2015年1月3日
  • Excel
    【Excel】IF文で使える全・演算子まとめ
    2017年8月20日
  • Windows
    データ復元率高し!「EaseUS Data Recovery Wizard」を使ってみた
    2017年7月15日
  • 旅行
    【オーストラリア】ケアンズの路上喫煙事情を見てみたら、日本とあまり変わらなかった件
    2014年11月1日
  • 旅行
    有楽町で餃子が食べたくなったら「天鴻餃子房」に駆け込もう 8種の多様な餃子、アリマス
    2015年8月23日
  • Windows
    WindowsとIEの各バージョンで動作確認をしたければこれが役立ちそう Microsoftが検証用の仮想マシンを無料配布しています
    2015年5月23日
  • Windows
    【Windows10】スタートに表示される「おすすめ」を二度と表示しなくさせる方法!
    2017年12月15日

BatFilename2014-0930-202521

ちょっと久しぶりにバッチファイルを触る機会があって、過去に勉強がてらに作ったバッチが良い感じに他用途に流用できたので、その部分を共有しておきます。

頻繁にログなどを出力するバッチにて、ファイル名に日付と秒単位での時刻を入れたい場合に使える記述です。

(Photo by kjetikor)

スポンサードリンク

関連記事

ソース

@echo off

echo %date%
echo %time%

set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%

set time2=%time: =0%

set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%

set filename=%yyyy%-%mm%%dd%-%hh%%mn%%ss%

echo test >> log_%filename%.txt

処理の内容

内容は見てもらえればわかるレベルで、そんなに大したことはしていないと思っていますが一応紹介しておきますね。 必要部分だけ、切り取って使ってみてください。

日付(年・月・日)を取得

set yyyy=%date:~0,4%
set mm=%date:~5,2%
set dd=%date:~8,2%

%date% の環境変数を呼び出すと、「2014/09/30」という文字列のフォーマットで今日の日付を出力します。

この文字列をそれぞれ年・月・日の部分のみを切り取って新しく yyyy, mm, dd の変数に放り込む処理です。

時刻(時・分・秒)を取得

set time2=%time: =0%

set hh=%time2:~0,2%
set mn=%time2:~3,2%
set ss=%time2:~6,2%

同じように、現在の時刻も環境変数 %date% から「11:55:05.23」というフォーマットで出力できます。 

ただし、午前0時~午前9時の間は出力結果が「 0:55:06.53」(頭に半角スペース)を含めてしまうため、エラーになる可能性があるので初めの行の処理を加えることで「00:55:06.53」と、頭に0が代入されるようにしておきます。

ファイル名に日時の文字列を追加

set filename=%yyyy%-%mm%%dd%-%hh%%mn%%ss%

echo test >> log_%filename%.txt

最後は単純に filename 変数に日付と時刻用に指定した変数を自分の好きなフォーマットで並べて文字列にしています。

echo testで適当な文字列を生成して、現在の日付・時刻を含んだログファイルを出力します。

出力されたファイル

ということで、上記記述で出力ファイル名を指定すると、こんな感じでログファイルが実行回数分だけ出力されます。
2014-0930-131346

今回はただのテストでechoコマンドをファイルにリダイレクトしているだけですが、リダイレクトの方法を変えればどんなコマンドの出力結果も出力可能ですね。

サービスの稼働確認などをするバッチを作って、毎回日付と時間で別ファイルにログとして残しておく…ということができそうです。

まとめ

  • 今日の日付は %date% 変数から取得
  • 現在の地獄は %time% 変数から取得
  • 上記2つの環境変数から日時の文字列を取得してファイル名に代入する
  • どんな環境でも使用可能

僕自身はバッチはそんなにプロフェッショナルじゃないので、もっといい指定方法があるのかもしれないんですけど、とりあえず僕がかかわった環境ではこの方法で今までやれているので、特に問題ないんじゃないかなと思ってます。

とりあえず、動けばいいんすよ(暴論)