Чтобы выполнить условие для атрибута LastWriteTime
, необходимо сначала вернуть FileInfoObject
. Строка пути, переданная в Move-Item -Path
, не будет иметь атрибута. Вы можете сделать что-то вроде следующего:
$dt = Get-Date -format "MM-dd-yyyy"
$logFolder = '\\192.168.20.151\user_backups\Veeam_Logs'
$destination = "$logFolder\Backup Logs [$dt]"
$source = Get-ChildItem -Path "$logFolder\*.log" | Where LastWriteTime -gt (Get-Date).AddDays(-7)
New-Item -ItemType Directory -Path $destination -Force
Move-Item -LiteralPath $source -Destination $destination -Force
$source
здесь выполняет все условные логи c. Неясно, хотите ли вы, чтобы файлы были новее или старше определенной даты. Если вам нужны файлы, которые новее $date
, вы можете использовать LastWriteTime -gt $date
. Если вам нужны файлы старше $date
, вам нужно будет использовать LastWriteTime -lt $date
.
Вы можете иметь значение -Path
для выполнения логики c, но вы должны передать выражение.
$dt = Get-Date -format "MM-dd-yyyy"
$logFolder = '\\192.168.20.151\user_backups\Veeam_Logs'
$destination = "$logFolder\Backup Logs [$dt]"
$source = Get-ChildItem -Path "$logFolder\*.log"
New-Item -ItemType Directory -Path $destination -Force
Move-Item -LiteralPath ($source | Where LastWriteTime -gt (Get-Date).AddDays(-7)) -Destination $destination -Force