1.只copy7天内生成的文件或文件夹.
2.如果目标已存在,则不覆盖,也不要提示.
谢谢
43 个解决方案
#1
自己写一个COPY的程序筛选。
#2
需要用dos批处理实现
#3
XCOPY 命令,
详细看HELP。
如: xcopy c:\text\*.* d:\test /S/D:M-D-Y /C
#4
用xcopy试过,但如果/d 参数后面指定日期,则如果目标存,会自动覆盖,这是不想要的.
然后常试用forfiles
[code=BatchFile]@echo off
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=%y%-%m%-%d%"
echo %nowdate%
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c copy @path e:\test\"
pause
[/code]
这里可以把 d:\test\a\a.txt copy 到 e:\test\a.txt ,现在不知道如何处理才能copy到e:\test\a下?
然后常试用forfiles
[code=BatchFile]@echo off
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=%y%-%m%-%d%"
echo %nowdate%
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c copy @path e:\test\"
pause
[/code]
这里可以把 d:\test\a\a.txt copy 到 e:\test\a.txt ,现在不知道如何处理才能copy到e:\test\a下?
#5
试试这样
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c Xcopy @path e:\test\"
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c Xcopy @path e:\test\"
#6
这样不会自动创建txt所属文件夹.
#7
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
@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
#8
用xcopy试过,但如果/d 参数后面指定日期,则如果目标存,会自动覆盖,这是不想要的.
zaorv试试是不是这样?
#9
用批处理文件来copy。
#10
写个应用程序吧。
#11
xcopy只提供了一个/Y,如果再有一个/跳过,就可以了. 可惜没有
#12
10L真言,哈
#13
自己搞定了,换了个思路:
先将不在7天之内的写入一个文件列表,然后利用xcopy的/EXCLUDE参数不copy列表内的文件.
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist.log del %src%notcopylist.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist.log"
xcopy %src%*.%suffix% %des% /s /d /EXCLUDE:%src%notcopylist.log
rem pause[/code]
先将不在7天之内的写入一个文件列表,然后利用xcopy的/EXCLUDE参数不copy列表内的文件.
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist.log del %src%notcopylist.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist.log"
xcopy %src%*.%suffix% %des% /s /d /EXCLUDE:%src%notcopylist.log
rem pause[/code]
#14
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist.log del %src%notcopylist.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist.log"
xcopy %src%*.%suffix% %des% /s /d /y /EXCLUDE:%src%notcopylist.log
rem pause
[/code]
#15
再次完善一个小地方:
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist_%suffix%.log del %src%notcopylist_%suffix%.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist_%suffix%.log"
if exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y /EXCLUDE:%src%notcopylist_%suffix%.log
if not exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y
rem pause
[/code]
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist_%suffix%.log del %src%notcopylist_%suffix%.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist_%suffix%.log"
if exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y /EXCLUDE:%src%notcopylist_%suffix%.log
if not exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y
rem pause
[/code]
#16
关注!!
#17
友情帮顶
#18
tve bv ajgakgflagkhl;
#19
[code=BatchFile]@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[/code]
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[/code]
#20
又见007,学习.
#21
forfiles命令的/d开关只能检测文件的最后修改日期。
如果要检测文件的创建日期,可以在dir /tc的结果中提取。
如果要检测文件的创建日期,可以在dir /tc的结果中提取。
#22
嗯,最近在学习批处理,以后还要向007多多学习.
#23
回帖是一种美德!每天回帖即可获得 10 分可用分!
#24
ddddd
#25
dddddddddddddddd
#26
d
#27
windows 没有写过
#28
楼主牛
UP
UP
#29
记号,学习了
#30
huifu
#31
o 这个 是什么呢
#32
怎么 才能得几分啊
#33
学习了
#34
学习
#35
回帖是个没得。。。。
#36
xuexi
#37
这个我也来哦解一下
#38
学习了...
#39
都是高手,初来乍到,学习学习。
#40
向技术帝学习了
#41
gaogao
#42
学习一下
#43
见习中
#1
自己写一个COPY的程序筛选。
#2
需要用dos批处理实现
#3
XCOPY 命令,
详细看HELP。
如: xcopy c:\text\*.* d:\test /S/D:M-D-Y /C
#4
用xcopy试过,但如果/d 参数后面指定日期,则如果目标存,会自动覆盖,这是不想要的.
然后常试用forfiles
[code=BatchFile]@echo off
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=%y%-%m%-%d%"
echo %nowdate%
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c copy @path e:\test\"
pause
[/code]
这里可以把 d:\test\a\a.txt copy 到 e:\test\a.txt ,现在不知道如何处理才能copy到e:\test\a下?
然后常试用forfiles
[code=BatchFile]@echo off
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=%y%-%m%-%d%"
echo %nowdate%
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c copy @path e:\test\"
pause
[/code]
这里可以把 d:\test\a\a.txt copy 到 e:\test\a.txt ,现在不知道如何处理才能copy到e:\test\a下?
#5
试试这样
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c Xcopy @path e:\test\"
forfiles /p d:\test /s /m *.txt /d +%nowdate% /c "cmd /c Xcopy @path e:\test\"
#6
这样不会自动创建txt所属文件夹.
#7
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
@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
#8
用xcopy试过,但如果/d 参数后面指定日期,则如果目标存,会自动覆盖,这是不想要的.
zaorv试试是不是这样?
#9
用批处理文件来copy。
#10
写个应用程序吧。
#11
xcopy只提供了一个/Y,如果再有一个/跳过,就可以了. 可惜没有
#12
10L真言,哈
#13
自己搞定了,换了个思路:
先将不在7天之内的写入一个文件列表,然后利用xcopy的/EXCLUDE参数不copy列表内的文件.
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist.log del %src%notcopylist.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist.log"
xcopy %src%*.%suffix% %des% /s /d /EXCLUDE:%src%notcopylist.log
rem pause[/code]
先将不在7天之内的写入一个文件列表,然后利用xcopy的/EXCLUDE参数不copy列表内的文件.
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist.log del %src%notcopylist.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist.log"
xcopy %src%*.%suffix% %des% /s /d /EXCLUDE:%src%notcopylist.log
rem pause[/code]
#14
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist.log del %src%notcopylist.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist.log"
xcopy %src%*.%suffix% %des% /s /d /y /EXCLUDE:%src%notcopylist.log
rem pause
[/code]
#15
再次完善一个小地方:
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist_%suffix%.log del %src%notcopylist_%suffix%.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist_%suffix%.log"
if exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y /EXCLUDE:%src%notcopylist_%suffix%.log
if not exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y
rem pause
[/code]
[code=BatchFile]@echo on
rem 将指定目录的所有文件及文件夹copy到指定目录下,只copy 7天内创建的或是7天内修改过的
rem author:perfectaction
set "src=d:\test\" rem 源目录路径
set "des=e:\test\" rem 目标路径
set "suffix=txt" rem 需要xcopy的文件后缀
set "dd=7" rem 只copy7天之内的文件
if exist %src%notcopylist_%suffix%.log del %src%notcopylist_%suffix%.log
forfiles /p %src% /s /m *.* /d -%dd% /c "cmd /c dir @path /b/s >>%src%notcopylist_%suffix%.log"
if exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y /EXCLUDE:%src%notcopylist_%suffix%.log
if not exist %src%notcopylist_%suffix%.log xcopy %src%*.%suffix% %des% /s /d /y
rem pause
[/code]
#16
关注!!
#17
友情帮顶
#18
tve bv ajgakgflagkhl;
#19
[code=BatchFile]@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[/code]
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[/code]
#20
又见007,学习.
#21
forfiles命令的/d开关只能检测文件的最后修改日期。
如果要检测文件的创建日期,可以在dir /tc的结果中提取。
如果要检测文件的创建日期,可以在dir /tc的结果中提取。
#22
嗯,最近在学习批处理,以后还要向007多多学习.
#23
回帖是一种美德!每天回帖即可获得 10 分可用分!
#24
ddddd
#25
dddddddddddddddd
#26
d
#27
windows 没有写过
#28
楼主牛
UP
UP
#29
记号,学习了
#30
huifu
#31
o 这个 是什么呢
#32
怎么 才能得几分啊
#33
学习了
#34
学习
#35
回帖是个没得。。。。
#36
xuexi
#37
这个我也来哦解一下
#38
学习了...
#39
都是高手,初来乍到,学习学习。
#40
向技术帝学习了
#41
gaogao
#42
学习一下
#43
见习中