Board logo

标题: [文件操作] 各位大佬,求教bat脚本复制文件的问题 [打印本页]

作者: xcx    时间: 2023-3-1 11:24     标题: 各位大佬,求教bat脚本复制文件的问题

我这边做了个脚本,配合任务计划程序想达到自动复制昨天生成的文件到指定的路径。但是我实际操作后发现,脚本会将我昨天和今天生成的文件一起复制过去,下面是我的脚本,是我哪里没有写对么?
  1. @echo on
  2. echo Wscript.echo dateadd("d",-1,date)>vbs.vbs
  3. for /f %%a in ('cscript //nologo vbs.vbs') do del vbs.vbs&&set yyyymmdd=%%a
  4. for /f "tokens=1,2,3* delims=// " %%i in ('echo %yyyymmdd%') do set yyyy=%%i&set mm=%%j&set dd=%%k
  5. if   %mm%   LSS   9   set   mm=0%mm%
  6. if   %dd%   LSS   9   set   dd=0%dd%
  7. set lastdate=%mm%/%dd%/%yyyy%
  8. echo %lastdate%
  9. xcopy D:\mysql-binlog-bak\mybinlog.* E:\binlog传输 /c /d:%lastdate%
复制代码

作者: Batcher    时间: 2023-3-1 12:16

回复 1# xcx


    代码里面的 echo %lastdate% 这一句显示的日期正确吗?
作者: xcx    时间: 2023-3-1 12:26

回复 2# Batcher


    是的,显示的是昨天的日期
作者: 77七    时间: 2023-3-1 13:27

/d [:MM-DD-YYYY]        仅复制指定日期或之后更改的源文件。 如果未包含 MM-DD-YYYY 值,xcopy则 复制比现有目标文件更新的所有源文件。 此命令行选项允许更新已更改的文件。
https://learn.microsoft.com/zh-cn/windows-server/administration/windows-commands/xcopy
是不是这个命令本身就是复制指定日期及之后的文件?
作者: xcx    时间: 2023-3-1 15:48

回复 4# 77七
这就很尴尬了,我只需要指定日期的文件就行了,之后的并不需要,或者还有种办法,脚本不变,我把脚本的运行时间改成第二天的凌晨的时候,那段时间基本上是没有数据进来的
作者: newswan    时间: 2023-3-1 16:41

  1. Get-ChildItem | ForEach-Object {
  2. if ( (get-date ($_.CreationTime) -Format "yyyy-MM-dd") -eq ( Get-Date ( (get-date) + (New-TimeSpan -Day -1) ) -Format "yyyy-MM-dd" ) ) {
  3. $_
  4. }
  5. }
复制代码
powershell 大概这样的




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2