如何为昨天创建日期戳

时间:2013-02-15 14:42:31

标签: batch-file

我正在尝试使用昨天的文件名中的日期戳(WH.FBTBT20130214.csv)获取文件的内容。我为今天创建了一个日期戳变量,但在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%

非常感谢任何帮助/方向。谢谢。

2 个答案:

答案 0 :(得分:0)

我找到了答案。万一有人感兴趣:

Set / A DateStamp =(%date:~10,4 %% date:~4,2 %% date:~7,2%) - 1

echo DateStamp:%DateStamp%

答案 1 :(得分:0)

您不能总是从日期中减去1并获得昨天的日期。说它是3月1日。昨天是什么? 3月0日?不这样做。更好的方法是使用vbscript的Date()对象并从中减去一天。

@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%