【发布时间】: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
非常感谢您的帮助
【问题讨论】:
-
您可能有兴趣让您的脚本与语言环境无关?见stackoverflow.com/a/19131662/2932052
标签: date batch-file