Batch file 如何为昨天创建日期戳
我正在尝试获取文件的内容,文件名中带有昨天的日期戳(WH.fbtbtt20130214.csv)。我为today创建了一个日期戳变量,但在google中找不到任何东西告诉我如何使用相同的格式将日期戳回溯一天。以下是我在批处理文件中创建的代码:Batch file 如何为昨天创建日期戳,batch-file,Batch File,我正在尝试获取文件的内容,文件名中带有昨天的日期戳(WH.fbtbtt20130214.csv)。我为today创建了一个日期戳变量,但在google中找不到任何东西告诉我如何使用相同的格式将日期戳回溯一天。以下是我在批处理文件中创建的代码: @echo off REM ***** 20130215 MS Define DateStamp variable ***** Set DateStamp=%date:~10,4%%date:~4,2%%date:~7,2% Set DateStamp=
@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%
任何帮助/指导都将不胜感激。谢谢。我找到了答案。以防有人感兴趣: Set/A日期戳=(%日期:~10,4%%日期:~4,2%%日期:~7,2%)-1
回显日期戳:%DateStamp%您不能总是从日期中减去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%
那是行不通的。如果今天的日期是2014年1月1日,你认为会发生什么?20140101变为20140100,但您需要20131231。另一个可能副本的可能副本:。我想还有其他人。谢谢你的信息。我没有意识到这是批处理的工作方式。我感谢你的纠正。我试试vbscript。好久没用了。