Xcopy:从文件夹复制最后修改的文件

Xcopy:从文件夹复制最后修改的文件

我需要从文件夹中复制特定扩展的最后修改文件。例如,某个文件夹包含:

  • 文件1.cas
  • 文件1.txt
  • 文件2.cas
  • 文件2.txt
  • 文件3.cas
  • 文件3.pptx
  • ...
  • 文件100.cas
  • 文件100.pptx
  • 文件100.doc

修改日期和时间对于 file56.cas 来说是最新的 我只想复制 file56.cas,同时正常复制其他扩展名的文件,并忽略没有扩展名的文件(已配置的部分)。

为了忽略没有扩展名的文件,我使用了此处找到的解决方案: 排除没有扩展名的文件 - XCOPY 或 ROBOCOPY 具体代码为: robocopy source destination /xf *.?

答案1

xcopy无法仅复制具有特定扩展名的最新文件。

以下(未经测试的)批处理代码将复制最新 .cas文件:

for /f "delims=" %%i in ('dir /b /a-d /od "path-to-folder\*.cas"') do set "LastFile=%%~i"
copy "path-to-folder\%LastFile%" "C:\target-folder\"

此代码旨在在.bat文件内部使用。

答案2

@echo off

cd /d "D:\Source\Folder" || exit 
set "_destiny=Z:\Destination\Folder"

for /f delims^= %%i in =;(' dir /b /a:-d /o:-d /tc *.cas '
     );= do copy "%%~dpnxi" "%_destiny%" /y /v & goto %:^(

%:^(
rem./ continue or & exit /b

1.列出你的文件和for /f .. ( dir ...)do ...循环

2使用按日期列出的列表,默认情况下从最旧到最新显示,然后反转日期顺序/o-d

3.使用为您的任务列出的第一个文件copy,然后退出而不复制循环中列出的其余文件goto :label

4.继续执行你的 bat/codes 或退出(如果没有更多执行)exit

相关内容