2017-03-16 3 views
0

Ich wollte einfach Dateien älter als 30 Tage von "x" nach "y" verschieben, aber ich bekomme den folgenden Fehler .. Move-Item: Das Eingabeobjekt kann nicht an irgendwelche Parameter für den Befehl gebunden werden, weil der Befehl dies tut Pipelineinput nicht nehmen, oder die Eingabe und ihre Eigenschaften stimmen nicht mit den Parametern überein, die die Pipelineeingabe verwenden.Move-Item: Das Eingabeobjekt kann nicht an Parameter für den Befehl gebunden werden, weil der Befehl keine Pipeline-Eingabe benötigt.

Gedankenschrift war einfach genug? Irgendwelche Vorschläge?

# Move All Files From One Location To New Location Older than 30 day(s) 
$LocationX = "\\Server\LogFiles\" 
$LocationY = "\\BackupServer\LogFiles\" 
$Daysback = "-30" 
$CurrentDate = Get-Date 
$DatetoMove = $CurrentDate.AddDays($Daysback) 
Get-ChildItem $LocationX | Where-Object { $_.LastWriteTime -lt $DatetoMove } | Move-Item $LocationX $LocationY -Force 
+1

Sie haben die Parameter gefüllt, die die Pipeline gefüllt hätte. Die Datei weiß bereits, wo sie sich befindet, daher muss dieser Pfad nicht angegeben werden. '| Move-Item -Destination $ LocationY -Force' – Matt

Antwort

1

Blick auf Beispiel 4 aus Move-Item on TechNet

PS C:\> Get-ChildItem -Path ".\*.txt" -Recurse | Move-Item -Destination "C:\TextFiles" 

Sie das Ziel sehen, ist der nur angegebenen Pfad Parameter. Beachten Sie, dass der Quellpfad nicht angegeben wird, da das fileinfo-Objekt, das in der Pipe übergeben wird, bereits über diese Informationen verfügt.

In Ihrer Pipeline füllen Sie die zwei Parameter aus, die über die Pipeline abgeglichen werden. Daher gibt es keinen anderen Platz, der zu füllen ist, daher die Leiterhälfte des Fehlers, den Sie bekommen.

Der Eingang und seine Eigenschaften stimmen nicht mit den Parametern überein, die den Pipeline-Eingang verwenden.

Also, mit Ihrem Code und der Logik aus der Hilfe sollten Sie in der Lage sein, dies zu tun und die Ergebnisse erhalten, die Sie erwarten.

Get-ChildItem $LocationX | 
    Where-Object { $_.LastWriteTime -lt $DatetoMove } | 
    Move-Item -Destination $LocationY -Force 
+0

DANKE WIE EIN CHARM GEARBEITET! –

+0

@MarcelPechon SIE SIND WILLKOMMEN – Matt

Verwandte Themen