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

我试图从子目录中获取所有最新的文件到一个networking目录与一个命令没有得到子目录结构。 它们是扩展名为*.trn的SQL Server日志文件。 我有以下但它不起作用。

试图从………..只有最新的*.trn文件备份和它的子目录。

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

您可以使用带有/od开关和for循环的dir命令:

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

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

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

既然你没有描述什么“不起作用”的意思,我唯一的建议是对其中有空格的文件名进行对冲。

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

这工作对我来说(我测试与.pdf的)。