dポイントプレゼントキャンペーン実施中!

すみません、どなたか教えて下さい。

バッチファイルの記述で、昨日の日付を取得する方法を教えて下さい。
今日の日付は下記のように取得しています。

rem 日時変数の取得
for /f "tokens=1-3 delims=/" %%a in ('echo %date:~-10%') do (set YYYYMMDD=%%a%%b%%c
)

A 回答 (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/419ba …
    • good
    • 0
この回答へのお礼

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

お礼日時:2007/12/17 10:03

日付時刻計算は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%
    • good
    • 6
この回答へのお礼

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

お礼日時:2007/12/17 10:00

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


計算するしかないでしょ。
    • good
    • 1
この回答へのお礼

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

お礼日時:2007/12/17 09:58

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A