Me gustaría copiar archivos de una unidad a otra, pero solo quiero copiar archivos de origen que sean más recientes que el archivo de destino. PERO, también quiero copiar solo los archivos fuente que se hayan modificado en los últimos 5 minutos.
Creé un archivo con extensión .bat y usé este comando:
xcopy "C:\Users\Pictures\Newfolder" "C:\Users\Pictures\Newfolder2\" /d:03/29/2019
Pero este comando es para la fecha.
Respuesta1
Este script de 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"
envuelto en un archivo por lotes:
:: 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%\"
)
Como es, esto copiará solo los archivos creados/cambiados en los últimos 5 minutos, si me equivoqué
y te refieres a archivos de más de 5 minutos, cambia el archivo -gt
a -lt
.