无忧启动论坛

标题: 想复制当前文件夹符合条件的2个文件并复制到另一个地方。 [打印本页]

作者: handsome1234    时间: 2019-12-18 11:38
标题: 想复制当前文件夹符合条件的2个文件并复制到另一个地方。
想复制当前文件夹符合条件的2个文件并复制到另一个地方。
当前的文件夹是db,每天备份存放的位置,我想把每天的最新的备份都复制到另一个地方
for /f "tokens=FY_*.bak" %%i in ('dir F:\DB_BAK /o:-d-s /b') do (set file=%%~fi)&(goto :next1)
:next1
copy %file% C:\ /y


不知高手可有良策?

作者: nttwqz    时间: 2019-12-18 13:31
XCOPY source [destination] [/A | /M] [/D[:date]] [/P] [/
                           [/C] [/I] [/Q] [/F] [/L] [/G]
                           [/K] [/N] [/O] [/X] [/Y] [/-Y
                           [/EXCLUDE:file1[+file2][+file

  source       指定要复制的文件。
  destination  指定新文件的位置和/或名称。
  
  /D:m-d-y     复制在指定日期或指定日期以后更改的文件。
               如果没有提供日期,只复制那些
               源时间比目标时间新的文件。
作者: handsome1234    时间: 2019-12-19 13:12
我想要仅复制最近1、2天文件有更新的文件,且两个目录下的文件数量不一致,我仅想复制最近1、2天的文件,其他的不复制。
作者: hilsonma    时间: 2019-12-20 05:59
本帖最后由 hilsonma 于 2019-12-20 06:07 编辑

for /f "tokens=1-3 delims=/ " %%i in ('date /t') do set "y=%%i" & set "m=%%j" & set "d=%%k"
set /a d-=2
xcopy . d:\bak\ /d:%m%-%d%-%y%
pause

以上脚本会将当前文件夹里前天到今天的文件复制到 d:\bak\
如果只要今天就删掉 set /a d-=2 这一行
如果要昨天到今天就将 set /a d-=2 改成 set /a d-=1
如果不是当前文件夹而是f:\db
  就将 xcopy . d:\bak\ /d:%m%-%d%-%y%
  改成 xcopy f:\db d:\bak\ /d:%m%-%d%-%y%
如果不停留查看,就删掉最后一行pause


作者: handsome1234    时间: 2019-12-21 18:31
本帖最后由 handsome1234 于 2019-12-21 18:44 编辑

好了,有效果
作者: handsome1234    时间: 2019-12-21 18:44
如果弹出是否覆盖,全部、取消, 这个对话框,可有办法发屏蔽?

作者: hilsonma    时间: 2019-12-21 20:28
handsome1234 发表于 2019-12-21 18:44
如果弹出是否覆盖,全部、取消, 这个对话框,可有办法发屏蔽?

你在cmd窗口输入 xcopy /? 就可以看到相关说明了。

xcopy . d:\bak\ /d:%m%-%d%-%y% 后面加上 /y 如下:

xcopy . d:\bak\ /d:%m%-%d%-%y% /y
这样就是默认覆盖不提示。




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3