2017-08-30 54 views
1

我正在尋找在我的批處理文件中包含一個腳本,該腳本從目錄複製文件「X」,例如「[...] \ 2017 \ 08 August \ 08.28」(之前的工作日-1)到目錄「2017 \ 08 August \ 08.29」(前一個工作日)。具有兩個可變日期的批處理文件

我目前確實有兩個批處理文件,這些文件在昨天或3天前執行一些事情(星期一執行),但我希望包含該行,最好將其合併到一個文件中,以便自動檢測如果前一天是工作日,或者不是。我現在所做的簡化操作是:

@echo off 
set day=-1 
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s) 
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) 
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a" 
del "%temp%\%~n0.vbs" 
set "YYYY=%result:~0,4%" 
set "MM=%result:~4,2%" 
set "DD=%result:~6,2%" 

if %MM%==08 (
set "mon=August" 
) 

copy "\2017\08 August\08.28\X" "\%YYYY%\%MM% %mon%\%MM%.%DD%" 

我怎樣才能讓它自動調整?

回答

0

這個問題徘徊了一下。關鍵似乎是你想知道昨天是否是一個工作日。這應該有所幫助:

@echo off 
set IYW_CURDAT=%DATE% 
set IYW_CURDOW=%IYW_CURDAT:~0,3% 
set IYW_YESWDY=TRUE 
if /I "%IYW_CURDOW%" EQU "Sun" set IYW_YESWDY=FALSE 
if /I "%IYW_CURDOW%" EQU "Mon" set IYW_YESWDY=FALSE 
if [%IYW_YESWDY%] == [TRUE] echo Yesterday was a weekday 
if [%IYW_YESWDY%] == [FALSE] echo Yesterday was NOT a weekday 
set IYW_CURDAT= 
set IYW_CURDOW= 
set IYW_YESWDY= 
+0

我不知道爲什麼我自己不這樣做。謝謝! – heaton124

相關問題