プログラマメモ2 - programmer no memo2

yyyyMMdd形式の日付フォルダを作りたい - dos 2013/09/21

いつもコピペですませていて、おぼえていなかったのでメモ

Windowsです。batです。

日付を2013/09/21とかをyyyyMMdd形式にしたいなーと思ったわけです。
手動で作業用フォルダをコピーしていたのですが、面倒だというわけで。

参考
 バッチファイルで今日の日付 (YYYYMMDD 形式) を取得 - アジャイルプログラマの日常
 現在時刻をHHMMSS形式で取得したい (DOSプロンプト活用相談室LOG)

はじめ、DATE コマンドに書式設定でできるのかなーと思ってたのですが、ないようでして、アプローチとしては、/を消すという方法で、TIMEコマンドは:を消すという方法が一般的なようですね。TIMEの場合は、時刻に0埋めされていないので、

 あとDATEからの値の取得は、javaでいうところのsubstringのように、何個目から何個目まできりとるというアプローチもありますね。

Windows TIPS:バッチ・ファイル中で日付をファイル名に使用する - @IT

 というわけで、作成したみたコード

 echo off

rem 日にちの確認
echo %DATE%
rem
set dt=%DATE:/=%


rem 時刻はミリまでとれる確認
echo %TIME%
rem 時刻はミリまでとれるので頭から8文字だけ
set tm=%TIME:~0,8%
rem :があるのでそれをぜんぶ削除
set tm=%tm::=%
rem 最後に時が0~9はあたまに空白なのでスペースを0に置き換える
set tm=%tm: =0%

echo %dt%
echo %tm%

set BK=%dt%_%tm%_backup

echo %BK%
rem mkdir %BK%
rem aaaフォルダ バックアップをとってみる
rem xcopyのこのスイッチでOKだと思う。。。
xcopy /I /E aaa %BK%\aaa

 これをbackup.batとして、aaaフォルダがある場所に作成して、バックアップをとりたいときに動かすと作成されます。

作業していて、内容を壊しそうだと思った瞬間にバックアップとって作業を続行してたりします。


実ははじめ

set dt = `date /T`

して結果が得られないことに悩んでました。
dosってコマンドの実行結果を得るってなんかよくわからんです。。。

 お仕事で使ってるコンピュータがインターネットにつながってないと、あとはおぼえていることしかできないんだなーと思う今日この頃です。

: