我试图通过命令将子目录中的所有最新文件都放到一个网络目录中而不获取子目录结构。它们是扩展名为*.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
答案 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测试过)。