Хорошо, одна проблема, с которой вы столкнетесь, состоит в том, что часть, которая вычисляет пути к файлам для перемещения, производит только имена файлов, а не полные пути.Попробуйте, чтобы понять, о чем я говорю:
$OFS="`n"
"$(dir $paths -r -fi *.zqx | ?{$_.lastwritetime -lt ($sevendaysold)})"
Параметр Path для Move-Item
принимает тип [string[]]
, поэтому PowerShell преобразует результаты вашего выражения dir в строковый массив.К сожалению, объекты System.IO.FileInfo отображают «ToString ()» на основе имени файла, который они были созданы с помощью IIRC.
К счастью, это легко исправить.Передайте объекты FileInfo в Move-Item
примерно так:
dir $paths -r *.zqx | ?{$_.lastwritetime -lt $sevenDaysOld} | mv -dest e:\xqz