批处理 求能实现copy一个月以前的文件的机能的.bat

来源:百度知道 编辑:UC知道 时间:2024/07/04 05:30:05
要实现一个拷贝功能的批处理,是通过现在的系统时间来判断,例如:在c:/aa文件夹中,如果据现在来说是一个月以前的文件就将它拷贝到d:/aa文件夹下。拜托拉

以下是我做的,抛砖引玉
@echo off
echo 正在从下面复制文件,清稍候……
if %DATE:~9,2%=="1"goto Change
set aFile=%DATE:~4,4%-%DATE:~9,2%-1-%DATE:~12,2%

:Change
set aFile=%DATE:~4,4%-1-%DATE:~9,2%+11-%DATE:~12,2%

echo %aFile%

xcopy /e /c /f /h /k /y /d:aFile "C:\Documents and Settings\feng_xu\デスクトップ" "D:\z\"
echo 复制完成
cls
echo 全部命令成功的完成了!
关键是日期问题,如果是一月的话那就需要换上一年了,。。切记,切记
哥们,实在不好意思。请问你set "mulu=g:\a\kg" 是不是改成set "mulu=d:\a" 就是d盘a 文件夹下,也就是发送的目录被,而copy "%mulu%\%%~nxb" "e:\temp\" 中的e:\temp\是e盘中的temp文件夹就是接受的目录这么理解对不?但是我改过了,还是没有事情发生呢?你在你机器上使用了么?好用么?

@echo off
setlocal enabledelayedexpansion
Rem 取40天之前的日期,取回放入变量riqi
echo wscript.echo dateadd("d",-4,date) >%tmp%\tmp.vbs
for /f "tokens=1,2,3* delims=-" %%i in ('cscript /nologo %tmp%\tmp.vbs') do set y=%%i&set m=%%j&set d=%%k
if %m% LSS 10 set m=0%m%
if %d% LSS 10 set d=0%d%
set riqi=%y%%m%%d%

set "mulu=g:\a\kg"
for /f "eol= skip=4 tokens=1,4" %%a in ('dir /a-d /tw "%mulu%"') do (
set delrq=%%a
set delrq=!delrq:-=!
if "!delrq:~0,3!"=="200" (
if !delrq! lss %riqi% (
copy "%mulu%\%%~nxb" "e:\temp\"
)
)
)
pause

帮你改了下,这样就好了嘛