Ich möchte Dateien von einem Laufwerk auf ein anderes kopieren, aber ich möchte nur Quelldateien kopieren, die neuer sind als die Zieldatei. ABER ich möchte auch nur Quelldateien kopieren, die in den letzten 5 Minuten geändert wurden.
Ich habe eine Datei mit der Erweiterung .bat erstellt und diesen Befehl verwendet:
xcopy "C:\Users\Pictures\Newfolder" "C:\Users\Pictures\Newfolder2\" /d:03/29/2019
Aber dieser Befehl ist für das Datum.
Antwort1
Dieses PowerShell-Skript:
(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"
in eine Batchdatei verpackt:
:: 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%\"
)
So wie es ist, werden nur Dateien kopiert, die in den letzten 5 Minuten erstellt/geändert wurden. Wenn ich das falsch verstanden habe
und Sie Dateien meinen, die älter als 5 Minuten sind, ändern Sie das -gt
in -lt
.