0

昨日のファイル名に日付スタンプを含むファイル(WH.FBTBT20130214.csv)の内容を取得しようとしています。今日の日付スタンプ変数を作成しましたが、同じ形式を使用して日付スタンプを 1 日さかのぼる方法を示す情報が Google で見つかりません。バッチファイルで作成したコードは次のとおりです。

@echo off

REM ***** 20130215 MS Define DateStamp variable *****
Set DateStamp=%date:~10,4%%date:~4,2%%date:~7,2%
Set DateStamp=%DateStamp%
REM Set DateStamp=20130212

echo DateStamp: %DateStamp%

どんな助け/指示も大歓迎です。ありがとうございました。

4

2 に答える 2

0

常に日付から1を引いて、昨日の日付を取得できるとは限りません。3月1日だとしましょう。昨日は何ですか。3月0日?そのようには機能しません。より良い方法は、vbscriptのDate()オブジェクトを使用して、そこから1日を引くことです。

@echo off
setlocal
REM ***** 20130215 MS Define DateStamp variable *****
echo d = DateAdd^("d", -1, Date^(^)^)>yesterday.vbs
echo wscript.echo DatePart^("yyyy", d^) ^& "/" ^& DatePart^("m", d^) ^& "/" ^& DatePart^("d", d^)>>yesterday.vbs
for /f "tokens=1-3 delims=/" %%I in ('cscript /nologo yesterday.vbs') do (
    set Year=%%I
    if %%J LEQ 9 (set Month=0%%J) else set Month=%%J
    if %%K LEQ 9 (set Day=0%%K) else set Day=%%K
)
set DateStamp=%Year%%Month%%Day%
del /q yesterday.vbs
echo %DateStamp%
于 2013-02-15T15:36:31.220 に答える
0

私は答えを見つけました。誰かが興味を持っている場合に備えて:

/ A DateStamp =(%date:〜10,4 %% date:〜4,2 %% date:〜7,2%)-1を設定します

エコーDateStamp:%DateStamp%

于 2013-02-15T15:18:49.537 に答える