【问题标题】:Use batch script to copy files with date使用批处理脚本复制带日期的文件
【发布时间】:2015-10-01 08:14:59
【问题描述】:

我有以下每天早上运行的批处理文件。它复制一个文件,其中包含一天减去一天。所以它今天复制了文件,但是昨天的日期。文件夹是年和月。这个脚本的问题是它每个月的第一天都会失败。这是因为它正在查找当前月份而不是上个月。我该如何更改它以使其适用于当月,但在新月的第一天它将查找上个月?

    rem @echo off

set year=%date:~-4,4%
set month=%date:~-7,2%
set YearMonth=%year%%month%
echo %YearMonth%


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 Day=%Day%
del /q yesterday.vbs
echo %Day%


copy D:\OPMS\Zeag\CC\%YearMonth%\N\creasc.%Day% D:\OPMS\Zeag\CC\BizzExtract

非常感谢您的帮助

【问题讨论】:

标签: date batch-file


【解决方案1】:

您正在计算昨天的完整日期字符串,但您只使用了当天。 %yearmonth% 仍然是旧值。

只需添加

set yearmonth=%Year%%Month%

在你的copy-line 之前用昨天的值更新它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-02-28
    • 1970-01-01
    • 2018-07-02
    • 1970-01-01
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多