プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっております。

今回、以下のような条件のbatファイルを流して、あるデータのバックアップのエクスポートと削除を行おうとしています。

1)今の日付、時間をファイル名として作成する
(YYYYMMDDHHNNSS.dmpというような)

2)今日より2日前以降のファイルは削除する


2の方は出来たのですが、1がうまく出来ません。
日付はDATEで、時間はTIMEを使っています。

Set YYYY=%Date:~0,4%
Set MM=%Date:~5,2%
Set DD=%Date:~8,2%
Set HH=%Time:~0,2%
Set NN=%Time:~3,2%
Set SS=%Time:~6,2%

Set TODAY=%YYYY%%MM%%DD%%HH%%NN%%SS%

しかしこの方法ですと、AM10時以前は" 9"というような、ゼロではなく空白が頭に入ってしまいます。
10時以降であれば、"12"や"23"と2桁ですが…

空白ではIFで判別するのが出来ないのではないかと思案中です。


うまく判別できるのであれば、
Set HH=0%Time:~1,2%
として、頭に0入れを行いたいです。

どのようにして空白を判別するか、もしくは他に良い方法がありましたらよろしくお願いします。

A 回答 (2件)

set /A で、一旦数値にして10時以前か判別する。

    • good
    • 0
この回答へのお礼

そうですね! ほとんど忘れていました。

Set /A HH=%Time:~0,2%
If %HH% LSS 10 Set HH=0%HH%
で出来ました。
ありがとうございます。

お礼日時:2004/12/03 10:30

空白を判断するのではなく、10以上かを判断してみてはいかがでしょうか?


10未満だったら、頭に0を足すとった形です。
以下を実行したらうまくいきましたが、これでどうでしょうか?


Set YYYY=%Date:~0,4%
Set MM=%Date:~5,2%
Set DD=%Date:~8,2%
Set HH=%Time:~0,2%
Set NN=%Time:~3,2%
Set SS=%Time:~6,2%

IF %HH% GEQ 10 GOTO SET_TODAY
Set HH=0%Time:~1,1%

:SET_TODAY
Set TODAY=%YYYY%%MM%%DD%%HH%%NN%%SS%


環境変数の取得にこんな方法があったなんて知りませんでした。
以後参考にさせてもらいます!
    • good
    • 0
この回答へのお礼

おお!見方の違いでした。
私は「より小さい」を条件に LSS 10 と比べていましたが、
「以上」の GEQ 10 としてもいいんですね。

でも2日以降の日付取得でGotoをかなり頻繁に使ってしまいましたので、さらに混乱を招いてしまいそうです(笑)

こんなもので良かったら、参考にして下さいね。
ありがとうございました。

お礼日時:2004/12/03 10:35

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!