[批处理help] 如何将指定目录下的7天内生成的所有文件夹和文件copy到指定目录
如何将指定目录下的7天内生成的所有文件夹和文件copy到指定目录.
1.只copy7天内生成的文件或文件夹.
2.如果目标已存在,则不覆盖,也不要提示.
谢谢
------解决方案--------------------自己写一个COPY的程序筛选。
------解决方案--------------------XCOPY 命令,
详细看HELP。
如: xcopy c:\text\*.* d:\test /S/D:M-D-Y /C
------解决方案--------------------试试这样
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c Xcopy @path e:\test\"
------解决方案--------------------rem @echo off
@echo on
echo wscript.echo dateadd("d",-7,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"
)
set "nowdate=%m%-%d%-%y%"
echo %nowdate%
xcopy d:\test\*.txt C:\TEST /S/D:%nowdate% /C/i
pause
------解决方案--------------------用批处理文件来copy。
------解决方案--------------------
BatchFile code
@echo off
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=c:\test\" rem 源目录路径
set "des=d:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
del /f /q /a "%src%notcopylist_%suffix%.log" 2>nul
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b /s >>%src%notcopylist_%suffix%.log"
if not exist "%src%notcopylist_%suffix%.log\" (
if exist "%src%notcopylist_%suffix%.log" (
xcopy "%src%*.%suffix%" "%des%" /s /d /y /EXCLUDE:%src%notcopylist_%suffix%.log
) else (
xcopy "%src%*.%suffix%" "%des%" /s /d /y
)
) else (
echo 错误:无法创建%src%notcopylist_%suffix%.log文件,当前目录存在同名文件夹。
)
rem pause