使用 Windows 命令行复制两个文件中最新的一个

使用 Windows 命令行复制两个文件中最新的一个

我有一个Windows目录,其中总共包含4个文件。文件名如下:

  • 地址_1502.csv
  • 地址_1602.csv
  • Site_1502.csv
  • Site_1602.csv

文件名的前缀永远不会改变,因此文件将始终以Address_或开头site_。我正在尝试找到一个命令,可以将两个文件中最新的文件从其当前目录复制到另一个目录。我目前有以下脚本,但是它只能找到所有 4 个文件中最新的文件并将其复制过去,但是我想找到两个 Address_ 文件中最新的文件和两个 Site_ 文件中最新的文件。

有人可以帮忙吗?

set "source=D:\TEMP_ONLY\SOURCE"
set "dest=D:\TEMP_ONLY\DESTINATION"
pushd "%source%" ||(
   echo.Source does not exist&pause&goto EOF)

for /f "tokens=*" %%f in (
   'dir /A-D /OD /B') Do set "file=%%f"
popd
xcopy /d /i "%source%\%file%" "%dest%\"

答案1

我想找到两个 Address_ 文件中最新的一个以及两个 Site_ 文件中最新的一个。

使用以下批处理文件:

@echo off
Setlocal EnableDelayedExpansion
set "source=D:\TEMP_ONLY\SOURCE"
set "dest=D:\TEMP_ONLY\DESTINATION"
pushd "%source%" || ( echo.Source does not exist & pause & goto done2)
for /f "delims=" %%a in ('dir Address_*.csv /a-d /b /O:d') do (
  xcopy /d /i "%source%\%%a" "%dest%\"
  goto :done1
  )
:done1   
for /f "delims=" %%a in ('dir Site_*.csv /a-d /b /O:d') do (
  xcopy /d /i "%source%\%%a" "%dest%\"
  goto :done2
  )
:done2
popd

进一步阅读

相关内容