复制所有子目录中的最新文件

时间:2013-06-27 17:13:25

标签: windows batch-file cmd directory

我试图通过命令将子目录中的所有最新文件都放到一个网络目录中而不获取子目录结构。它们是扩展名为*.trn的SQL Server日志文件。我有以下但它不起作用。

尝试仅从........... Backup及其子目录中获取最新的*.trn文件。

for /R E:\SQLSERVER\PRODINSTANCE1\Backup %%f in (*.trn) do xcopy %%f "\\198.152.71.14\NetBackups$\MSSQL\Logs" /B /O:D /d /Y

2 个答案:

答案 0 :(得分:1)

您可以将dir命令与/od开关和for循环一起使用:

@echo off &setlocal enabledelayedexpansion
for /d /r "E:\SQLSERVER\PRODINSTANCE1\Backup" %%a in (*) do (
    for /f "delims=" %%i in ('dir /b /a-d /od "%%~a"') do set "newest=%%~fi"
    xcopy "!newest!" "\\198.152.71.14\NetBackups$\MSSQL\Logs" /B /O:D /d /Y
)

如需更多帮助,请在命令提示符下输入help dir

答案 1 :(得分:0)

我不确定你是否正确使用xcopy。 /O不接受论证。它只复制所有权/ ACL信息。 (这真的是你想要的日志文件吗?)

由于您没有描述“不起作用”的含义,我唯一的建议就是对照其中带有空格的文件名。

FOR /R "%SRC_DIR%" %%f in (*.trn) do xcopy "%%~f" "%DEST_DIR%" /B /O /D /Y

这对我有用(我用.pdf测试过)。