任务是Zip IIS日志文件(文本文件)并根据昨天的日期复制到另一个文件夹。此批处理脚本必须每天安排。
我是批处理脚本的新手。任何帮助表示赞赏.. !!谢谢。
我有这个代码正在复制最新的3个文件。但是,我想复制仅在昨天的日期创建的文件。我的文件命名格式是a_bc130510(a_bcYYMMDD)。
enter code here
@ECHO OFF
SET srcdir=D:\IIS LOGS
SET tgtdir=D:\FileCopy
SET /A topcnt=3
SET /A cnt=0
FOR /F "tokens=*" %%F IN ('DIR /A-D /OD /TW /B "%srcdir%"') DO (
SET /A cnt+=1
SETLOCAL EnableDelayedExpansion
IF !cnt! GTR !topcnt! (ENDLOCAL & GOTO :EOF)
ENDLOCAL
COPY "%srcdir%\%%F" "%tgtdir%"
)
答案 0 :(得分:0)
这被修改为按照你的要求复制昨天的最新文件。
这假设您的日志文件名为abcYYMMDD.log
如果您需要其他内容,请更改术语"%srcdir%\*%day%.log"
。
@echo off
call :getdate today -1
SET "srcdir=D:\IIS LOGS"
SET "tgtdir=D:\FileCopy"
FOR /F "delims=" %%F IN ('DIR /A-D /O-D /TW /B "%srcdir%\*%day%.log"') DO (
COPY "%srcdir%\%%F" "%tgtdir%"
goto :done
)
:done
rem extra code after the copy goes here
goto :EOF
:getdate
set date1=%1
set qty=%2
set separator=%~3
if /i "%date1%" EQU "TODAY" (set date1=now) else (set date1="%date1%")
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%qty%,%date1%)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^&_
echo>>"%temp%\%~n0.vbs" right(100+month(s),2)^&_
echo>>"%temp%\%~n0.vbs" right(100+day(s),2)
for /f %%a in ('cscript //nologo "%temp%\%~n0.vbs"') do set result=%%a
del "%temp%\%~n0.vbs"
endlocal& set "YY=%result:~2,4%"&set "MM=%result:~4,2%"&set "DD=%result:~6,2%"
set "day=%YY%%separator%%MM%%separator%%DD%"
goto :EOF