2015-10-01 93 views
3

我有以下每天早上運行的批處理文件。它複製一天的文件減去一天。所以它今天覆制文件,但與昨天的日期。該文件夾是年份和月份。這個腳本的問題是每個月的第一天都會失敗。這是因爲它正在尋找當前月份而不是前一個月份。我怎樣才能改變它,所以它會在當前的月份工作,但在新的一個月的第一天,它會尋找上個月?使用批處理腳本以日期複製文件

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

您可能有興趣使您的腳本語言環境不可知?請參閱http://stackoverflow.com/a/19131662/2932052 – Wolf

回答

2

你正在計算昨天的完整datestring,但你只使用一天。 %yearmonth%仍然是舊值。

之前你copy直插與昨天的值更新它只需添加

set yearmonth=%Year%%Month% 

相關問題