2017-09-29 3 views
1

Ich arbeite an einem PowerShell-Skript, das automatisch Ordner und Dateien aus dem 'X-Drive' Ordner verschiebt und in den 'alten' Ordner verschiebt, der sich auch im '' X-Drive 'Ordner, aber ich möchte, dass es nur die Ordner der ersten Ebene enthält, alles, was drin ist, kann verschoben werden, aber nur der Ordner muss behalten werden, aber es muss auch im' Alten 'Ordner sein.Behalten Sie die erste Ebene von Ordnern von Get-ChildItem beim Verschieben

$exclude = @('Keep 1', 'Keep 2') 
Get-ChildItem -Path "C:\X-Drive" -Recurse -Exclude $exclude | 
    Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-0) } | 
    Move-Item -Destination "C:\X-Drive\Old" -ErrorAction 'SilentlyContinue' 

Antwort

0

Auflisten der Unterordner C:\X-D_rive, dann ihren Inhalt zu den entsprechenden Unterordnern in C:\X-Drive\old bewegen, z.B. wie folgt aus:

$refdate = (Get-Date).AddDays(-1) 
Get-ChildItem 'C:\X-Drive' -Directory -Exclude $exclude | ForEach-Object { 
    $dst = Join-Path 'C:\X-Drive\old' $_.Name 
    If (-not (Test-Path -LiteralPath $dst)) { 
     New-Item -Type Directory -Path $dst | Out-Null 
    } 
    Get-ChildItem $_.FullName -Recurse | Where-Object { 
     $_.LastWriteTime -lt $refdate 
    } | Move-Item -Destination $dst 
} 

Sie möchten old-$excludes, BTW hinzuzufügen.

Der Code geht davon aus, dass Sie PowerShell v3 oder höher ausführen.

+0

Es funktioniert wie ein Zauber, aber es bewegt keine Dateien darin, ist es so programmiert oder muss ich es irgendwo einbeziehen? –

+0

Der Beispielcode sollte Dateien verschieben, die vor mehr als einem Tag zuletzt geändert wurden ('$ refdate = (Get-Date) .AddDays (-1)'). Passen Sie dieses Referenzdatum Ihren Anforderungen an. Ihr ursprüngliches '(Get-Date) .AddDays (-0)' macht nicht viel Sinn, denn das würde alle Dateien verschieben, die nicht zuletzt in der Zukunft geändert wurden (dh alle Dateien), so dass Sie sie genauso gut entfernen könnten die Bedingung. –

+0

Nein, ich würde es nicht testen, bevor ich es benutze. Vielen Dank, dass Sie mir geholfen haben. –

Verwandte Themen