• ベストアンサー

バッチファイルで昨日の日付を取得

すみません、どなたか教えて下さい。 バッチファイルの記述で、昨日の日付を取得する方法を教えて下さい。 今日の日付は下記のように取得しています。 rem 日時変数の取得 for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do ( set YYYYMMDD=%%a%%b%%c )

質問者が選んだベストアンサー

  • ベストアンサー
  • momoracci
  • ベストアンサー率51% (14/27)
回答No.3

:: ----- prevdate.bat はじめ ----- @echo off ::今日の日付を取得 set yy=%date:~0,4% set mm=%date:~5,2% set dd=%date:~8,2% echo 今日は、%yy%年%mm%月%dd%日です。 ::1日前の日付を計算する set /a dd=%dd%-1 set dd=00%dd% set dd=%dd:~-2% set /a ymod=%yy% %% 4 if %dd%==00 ( if %mm%==01 (set mm=12&& set dd=31&& set /a yy=%yy%-1) if %mm%==02 (set mm=01&& set dd=31) if %mm%==03 (set mm=02&& set dd=28&& if %ymod%==0 (set dd=29)) if %mm%==04 (set mm=03&& set dd=31) if %mm%==05 (set mm=04&& set dd=30) if %mm%==06 (set mm=05&& set dd=31) if %mm%==07 (set mm=06&& set dd=30) if %mm%==08 (set mm=07&& set dd=31) if %mm%==09 (set mm=08&& set dd=31) if %mm%==10 (set mm=09&& set dd=30) if %mm%==11 (set mm=10&& set dd=31) if %mm%==12 (set mm=11&& set dd=30) ) echo 昨日は、%yy%年%mm%月%dd%日です。 echo. pause :: ----- prevdate.bat おわり -----

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/419batchdate/batchdate.html
user10
質問者

お礼

ご丁寧に教えていただきありがとうございました。 今回はすべてバッチファイルで処理を行いたいので、こちらを参考にさせていただきます。 本当にありがとうございました。

その他の回答 (2)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

日付時刻計算はVBScriptを使ってしまうのが楽です。 echo WScript.Echo DateAdd("d",-1,Date()) > tmp.vbs for /f "tokens=1-3 delims=/-" %%A in ('cscript //nologo tmp.vbs') do set ANS=%%A%%B%%C del tmp.vbs バッチコマンドだけで頑張るなら、http://it-is-it.net/CMD/ の機能別の日時計算を参照。 >for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do ( set YYYYMMDD=%%a%%b%%c ) ↑とっても変です。 フツー、set YYYYMMDD=%DATE:~-10,4%%DATE:~-5,2%%DATE:~-2,2%

user10
質問者

お礼

VBScriptの例も教えていただきありがとうございました!! 日付取得のアドバイスまでいただいて・・・。 普通のやりかたに変更します。

  • assault852
  • ベストアンサー率48% (1364/2797)
回答No.1

変数で取得できるのは現在日時であって、昨日の日付なんて取得しようがないと思いますが。 計算するしかないでしょ。

user10
質問者

お礼

やはり計算しかないのですね、ありがとうございました。

関連するQ&A