【问题标题】:Need batch to copy files from yesterday (sysdate -1)需要批量复制昨天的文件(sysdate -1)
【发布时间】:2018-01-01 14:55:01
【问题描述】:

我需要一个脚本来从包含整个月的文件的位置复制文件。 问题是我只需要将昨天的文件复制到临时位置。我搜索了很多,但找不到解决方案。

我已经尝试过这种形式。第一部分向我展示昨天的那一天。

@echo off
Set _Source=V:\IngOnline
Set _Dest=D:\SPEtransfer\IngOnline\Temp
set log=D:\SPEtransfer\logIngOnlineTransfer.log
set day=-1
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "data=%yyyy%-%mm%-%dd%"

echo Yesterday was "%data%"
pause

forfiles /p %_Source% /d -1 "cmd /c copy %_Source%\*.* %_Dest%"

【问题讨论】:

  • SO 不是免费的编码服务。请向我们展示您到目前为止所做的尝试以及您遇到的问题。
  • 获取所有这些 cmets 并将它们编辑回您的原始问题。
  • 我已经编辑了原始帖子并添加了我尝试过的内容。

标签: batch-file cmd copy


【解决方案1】:

这是简化的替换代码,应该复制到 %_S% 中的任何文件到 %_D%,该文件仅在昨天被修改:

@Echo Off

Set "_S=V:\IngOnline"
Set "_D=D:\SPEtransfer\IngOnline\Temp"

For /F UseBackQ %%A In (`PowerShell^
 "(Get-Date).AddDays(-1).ToString('dd/MM/yyyy')"`) Do ForFiles /P "%_S%" /D^
 %%A /C "Cmd /C If @IsDir==FALSE If @FDate==%%A Copy @Path 0x22%_D%0x22>Nul"

您只需要确保ToString(' ') 中的格式与您的ForFiles 命令所需的格式相匹配,(在命令提示符窗口中输入ForFiles /? 即可找到它)

【讨论】:

  • 是的,类似的。我已经尝试过您制作的版本,但收到以下错误:D:\SPEtransfer>IngOnlineT-1copy.bat Yesterday was "2017-07-25" Press any key to continue 。 . .错误:无效的参数/选项 - 'Cmd /C Copy @path 0x22D:\SPEtransfer\IngOnline \Temp0x22'。输入“FORFILES /?”供使用。
  • 为什么在该输出中IngOnline\Temp 之前出现不正确/以前未见过的空格字符?你是不是在什么地方打错字了?
  • 这是一个错字,当我从 CMD 复制时,我错误地输入了一个空格。
  • 我猜您已将 -1 替换为 %data% 但您用于 %data% 的格式不正确对于ForFiles,它需要dd/MM/yyyy。我已经相应地更新了代码;那是你打算做的吗?另一方面,如果您不想识别修改过的目录,您可能需要使用"Cmd /C If @IsDir==FALSE Copy @path 0x22%_Dest%0x22"
  • 也试过了。我得到同样的错误... D:\SPEtransfer>IngOnlineT-1copy.bat 昨天是“25/07/2017” 按任意键继续。 . .错误:无效的参数/选项 - 'Cmd /C Copy @path 0x22D:\SPEtransfer\IngOnline\Temp0x22'。输入“FORFILES /?”供使用。我不明白出了什么问题。我想将昨天的文件从源复制到目标。
猜你喜欢
  • 1970-01-01
  • 2017-11-16
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-15
  • 2011-11-16
  • 1970-01-01
相关资源
最近更新 更多