我有以下每天早上运行的批处理文件。它会复制一天中有一天减去一天的文件。所以它今天复制文件但是昨天的日期。该文件夹是年份和月份。这个脚本的问题是它每个月的第一天都会失败。这是因为它正在寻找当月而不是上个月。如何更改它以便它可以在当月工作,但是在新月的第一天它会查找上个月?
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
非常感谢你的帮助
答案 0 :(得分:2)
您正在计算昨天的完整日期字符串,但之后您只使用该日期。 %yearmonth%
仍然是旧值。
添加
set yearmonth=%Year%%Month%
在copy
- 行之前用昨天的值更新它。