使用.bat命令复制最新或最新文件

时间:2014-12-23 16:29:43

标签: batch-file copy

我必须将最新或最新的文件从服务器复制到另一台服务器。

我有这样的代码

@echo off
set source="\\tsclient\F\Project Documentation"
set target="C:\Users\xyz\Desktop\DS\datafiles"

FOR /F "delims=" %%I IN ('DIR %source%\*.xml /A:-D /O:-D /B') DO COPY %source%\"%%I" %target% & echo %%I & GOTO :END
:END
TIMEOUT 4
问题是,这只会复制1个文件,有两个新文件。如何复制第二个?

1 个答案:

答案 0 :(得分:1)

你可以使用延迟扩展和这样的循环变量:

@echo off
setlocal enabledelayedexpansion

set "source=\\tsclient\F\Project Documentation"
set "target=C:\Users\xyz\Desktop\DS\datafiles"

set loop=1
FOR /F "delims=" %%I IN ('DIR "%source%\*.xml" /A:-D /O:-D /B') DO (
    COPY "%source%\%%~nxI" "%target%"
    echo %source%\%%~nxI
    if !loop! equ 2 GOTO END
    set /a loop+=1
)
:END
TIMEOUT 4

但它总是会复制2个文件。如果您只有一个新文件,那么您仍然会复制两个文件。