【问题标题】:Copy the newest file from all the subdirectories从所有子目录复制最新文件
【发布时间】:2013-06-25 07:39:41
【问题描述】:

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

试图从......备份及其子目录中仅获取最新的 *.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

【问题讨论】:

  • 有什么不好的?

标签: windows batch-file cmd directory


【解决方案1】:

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

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

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

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

【讨论】:

    【解决方案2】:

    您可以将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

    【讨论】:

    • 我不确定 @Calvin 只想要 一个 最新文件或 所有 最新/更新文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 1970-01-01
    相关资源
    最近更新 更多