如何使用批处理文件将文件复制到目录中的“最新子目录”?

时间:2009-05-11 15:01:32

标签: batch-file dos

我需要将文件从最近的build文件夹复制到另一个用于测试的文件夹。我很难获得最新构建文件夹的名称。

我目前的尝试是:

@for /D %%i in ('dir e:\builds\projectA\* /O:D') do set target=%%i
echo %target%
xcopy "%target%\*.*" \\devbox\projectA /y /s 

我希望目标是新创建的文件夹,然后我可以从中复制文件。但是,当我向控制台回显目标时,它只是说:

/O:D'

有谁知道如何让这个工作(或知道替代方案)?

2 个答案:

答案 0 :(得分:5)

用/ F替换/ D并将/ B添加到括号内的dir命令。

@for /F %%i in ('dir e:\builds\projectA\* /O:D /B') do set target=%%i
echo %target%
xcopy "%target%\*.*" \\devbox\projectA /y /s

答案 1 :(得分:0)

pushd E:\builds\projectA
for /f "delims=" %%d in ('dir /b /a:d /o:d') do @echo %%d>latest.txt
for /f "delims=" %%l in (latest.txt) do xcopy "%%l\*.*" \\devbox\projectA /y /s
del latest.txt
popd