SSブログ

MS-DOSで昨日の日付を取得する方法 [データサイエンス、統計モデル]

こんなプログラムを作ってみた。

やりたいこと
【1日前~7日前の日付を取得したい。】

ただ、MS-DOS単体で実装するのは少々面倒くさい。
そこで、VBScriptとMS-DOSを組み合わせて取得することにした。

【STEP1】
日付取得.vbsを作成する。
下記をテキストで書いて、"日付取得.vbs"という名前で保存しておく。

'=====================================================================
'現在日付の1日前~7日前の年月日をテキストファイルに出力
'=====================================================================

Dim fso, f, f1, fc, s, Bef1W, Bef2W
Set fso = CreateObject("Scripting.FileSystemObject")

Bef1D = DateAdd("d",-1, date)
Bef2D = DateAdd("d",-2, date)

<< 省略 >>

Bef7D = DateAdd("d",-7, date)

Set MyFile= fso.CreateTextFile("Bef1DayYMD.txt", True)
MyFile.WriteLine(Bef1D)
MyFile.Close

Set MyFile= fso.CreateTextFile("Bef2DayYMD.txt", True)
MyFile.WriteLine(Bef2D)
MyFile.Close

<< 省略 >>

Set MyFile= fso.CreateTextFile("Bef7DayYMD.txt", True)
MyFile.WriteLine(Bef7D)
MyFile.Close

【STEP2】
MS-DOSバッチを作成する。
WScript オブジェクトは Windows Script Host のオブジェクト モデル階層のルート オブジェクトで、これを使って【STEP1】のvbsを呼び出します。
WINDOWS XPですと、下の様に書けば動くと思います。

'=====================================================================
'YYYY(年)、MM(月)、DD(日)を変数に格納
'=====================================================================

wscript.exe "%FIRST_PLACE%日付取得.vbs"

rem --【1D前日付】
for /f %%A in (Bef1DayYMD.txt) do set Bef1D_YMD=%%A
set APD1_YYYY=%Bef1D_YMD:~0,4%
set APD1_MM=%Bef1D_YMD:~5,2%
set APD1_DD=%Bef1D_YMD:~8,2%

rem --【2D前日付】
for /f %%A in (Bef2DayYMD.txt) do set Bef2D_YMD=%%A
set APD2_YYYY=%Bef2D_YMD:~0,4%
set APD2_MM=%Bef2D_YMD:~5,2%
set APD2_DD=%Bef2D_YMD:~8,2%

<< 省略 >>

rem --【7D前日付】
for /f %%A in (Bef7DayYMD.txt) do set Bef7D_YMD=%%A
set APD7_YYYY=%Bef7D_YMD:~0,4%
set APD7_MM=%Bef7D_YMD:~5,2%
set APD7_DD=%Bef7D_YMD:~8,2%

echo "%APD1_YYYY%%APD1_MM%%APD1_DD%"

echo "%APD2_YYYY%%APD2_MM%%APD2_DD%"

<< 省略 >>

echo "%APD7_YYYY%%APD7_MM%%APD7_DD%"

nice!(7) 
共通テーマ:パソコン・インターネット

nice! 7