如何创建昨天的日期戳 [英] How can I create a date stamp for yesterday

查看:119
本文介绍了如何创建昨天的日期戳的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图与昨天在文件名中的日期戳(WH.FBTBT20130214.csv)来获取文件的内容。我创建了一个日期戳变量,但今天无法找到谷歌什么,告诉我如何追溯我的邮戳1天使用相同的格式。下面是我在我的批处理文件中创建的code:

I am trying to acquire the contents of the file with a datestamp in the file name for yesterday (WH.FBTBT20130214.csv). I created a date stamp variable for today but cannot find anything in google that tells me how to backdate my datestamp one day utilizing the same format. Here is the code that I created in my batch file:

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

任何帮助/方向是极大的AP preciated。谢谢你。

Any help/direction would be greatly appreciated. Thank you.

推荐答案

您不能总是只减去1日起,让昨天的日期。说这是3月1日什么是昨天?三月0?不工作的方式。更好的方法是使用VBScript的日期()对象,并从中减去一天。

You can't always just subtract 1 from the date and get yesterday's date. Say it's March 1. What's yesterday? March 0? Doesn't work that way. A better way is to use vbscript's Date() object and subtract a day from it.

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

这篇关于如何创建昨天的日期戳的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆