使用批处理脚本复制带有日期的文件

时间:2015-10-01 08:14:59

标签: date batch-file

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

    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

非常感谢你的帮助

1 个答案:

答案 0 :(得分:2)

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

添加

set yearmonth=%Year%%Month%

copy - 行之前用昨天的值更新它。