0

我正在尝试获取带有昨天文件名中的日期戳的文件内容(WH.FTBBT20130214.csv)。我为今天创建了一个日期戳变量,但在谷歌中找不到任何告诉我如何使用相同格式回溯我的日期戳的任何内容。这是我在批处理文件中创建的代码:

@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

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

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

回显日期戳:%DateStamp%

于 2013-02-15T15:18:49.537 回答
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%
于 2013-02-15T15:36:31.220 回答