如何仅将新文件从一个文件夹复制到另一个文件夹,并且仅将 5 分钟前添加的文件复制到另一个文件夹?

如何仅将新文件从一个文件夹复制到另一个文件夹,并且仅将 5 分钟前添加的文件复制到另一个文件夹?

我想将文件从一个驱动器复制到另一个驱动器,但我只想复制比目标文件更新的源文件。但是,我还想只复制过去 5 分钟内更改过的源文件。

我创建了一个扩展名为 .bat 的文件并使用了以下命令:

xcopy "C:\Users\Pictures\Newfolder"  "C:\Users\Pictures\Newfolder2\" /d:03/29/2019

但这个命令是用于日期的。

答案1

此 PowerShell 脚本:

(Get-ChildItem 'C:\Users\Pictures\Newfolder' |
    Where {!($_.PSIsContainer) -and
           ($_.LastWriteTime -gt [datetime]::now.AddMinutes(-5)) -and 
           (!(Test-Path (Join-Path 'C:\Users\Pictures\Newfolder2' $_.Name)))}).FullName"

包裹在批处理文件中:

:: Q:\Test\2019\03\29\SU_1419009.cmd
@Echo off
Set "Src=C:\Users\Pictures\Newfolder"  
Set "Dst=C:\Users\Pictures\Newfolder2"

For /f "usebackq delims=" %%A in (`
    powershell -NoP -C "(Get-ChildItem '%Src%'|Where {!($_.PSIsContainer) -and ($_.LastWriteTime -gt [datetime]::now.AddMinutes(-5)) -and (!(Test-Path (Join-Path '%Dst%' $_.Name)))}).FullName"
`) Do (
echo Copy "%%A" "%Dst%\"
     Copy "%%A" "%Dst%\"
)

因为这将仅复制过去 5 分钟内创建/更改的文件,如果我错了,
而您的意思是超过 5 分钟的文件,则将其更改-gt-lt

相关内容