2

我正在尝试使用命令将子目录中的所有最新文件放入一个网络目录,而无需获取子目录结构。它们是扩展名为*.trn. 我有以下内容,但它不起作用。

试图*.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
4

2 回答 2

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,请在命令提示符下输入。

于 2013-06-27T18:53:01.393 回答
0

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

由于您没有描述“不起作用”的含义,因此我唯一的建议是避免文件名中包含空格。

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

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

于 2013-06-27T18:21:56.310 回答