将最新版本文件从文件夹复制到另一个文件夹

将最新版本文件从文件夹复制到另一个文件夹

我必须将文件的最新版本从一个文件夹复制到另一个文件夹。

例如:

我有一个包含许多文件的文件夹,每个文件在同一个文件夹中都有多个版本文件1-a文件1-b

我只需要复制版本文件1-b(最新版本),不要获取其他版本

我已经制作了这个批处理文件:

@echo off
set src_folder=\\ServerName\internal\file
set dst_folder=c:\Users\username\Desktop\extract-file
set file_list=c:\Users\username\Desktop\file-list.txt

if not exist "%dst_folder%" mkdir "%dst_folder%"

for /f "delims=" %%f in (%file_list%) do (
xcopy "%src_folder%\%%f**.jpg" "%dst_folder%\"
)

我写下file-list.txt要移动的文件的名称,但不写其版本....File1 File2 File3 等等..

通过这批处理,我可以将文件从一个文件夹复制到另一个文件夹,但所有文件和所有版本

我如何复制最新版本?

例如仅复制文件1-b代替文件1-a+文件1-b

答案1

这是一个如何完成的示例,在编程中总是有几种方法可以做同一件事......

@echo off
set src_folder=%userprofile%\desktop\Source
set dst_folder=%userprofile%\desktop\Destiny
set file_list=%userprofile%\desktop\file-list.txt

if not exist "%dst_folder%" mkdir "%dst_folder%"

pushd "%src_folder%"
for /f "delims=" %%f in (%file_list%) do Call :DoCopy "%%f"

exit

:DoCopy
for /f "delims=" %%g in ('dir /b /o-n "%~1"*') do (
                                                   xcopy /f /y /h "%%g" "%dst_folder%\"
                                                   goto :EOF
                                                  )
goto :EOF

在此处输入图片描述

相关内容