用于复制目录

时间:2017-11-14 16:24:05

标签: batch-file

嗨,这就是我需要完成而不确定如何。我有一个SQL服务器,它每天将事务日志备份到sql server上的本地E驱动器。我需要做的是将最新的日志文件从该服务器复制到远程服务器。一旦我让脚本工作,我将设置为计划任务。任何人都可以给我关于如何将最新文件复制到其他服务器的建议。这也将每天运行,因此文件名日期将更改,这就是我需要备份所在目录中最新文件的原因。

1 个答案:

答案 0 :(得分:0)

在批处理文件中使用以下命令行:

for /F "delims=" %%I in ('dir "C:\Path To\Source Folder\*" /A-D-H /B /O-D /TW 2^>nul') do copy /B /Y "C:\Path To\Source Folder\%%I" "X:\Path To\Destination Folder\" >nul & goto FileCopied

:FileCopied
rem More commands after copying file with newest last modification date.

例如,Get newest file in directory with specific extension解释了此代码。命令 DIR 此处也排除了隐藏属性设置为命令 COPY 的文件不会复制隐藏文件。目标文件夹必须已存在。

具有真实文件夹路径的增强版:

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "SourceFolder=E:\MSSQL\Backup\AaaImaging"
set "TargetFolder=\\servername\F\MSSQL\Backup\Pablo"
for /F "delims=" %%I in ('dir "%SourceFolder%\*" /A-D-H /B /O-D /TW 2^>nul') do copy /B /Y "%SourceFolder%\%%I" "%TargetFolder%\" >nul & goto FileCopied

:FileCopied
rem More commands after copying file with newest last modification date.
endlocal

要了解使用的命令及其工作原理,请打开命令提示符窗口,执行以下命令,并完全阅读为每个命令显示的所有帮助页面。

  • copy /?
  • dir /?
  • endlocal /?
  • for /?
  • goto /?
  • rem /?
  • set /?
  • setlocal /?

另请阅读Microsoft有关Using Command Redirection OperatorsSingle line with multiple commands using Windows batch file

的文章