Вам нужно получить файлы, прежде чем их зацикливать. Вам также нужно сообщить PowerShell, что вы хотите сравнить дату файла и дату, когда она была создана, изменена и т. Д. c. В данный момент вы говорите «если этот объект FileInfo меньше этой даты», именно поэтому вы получаете эту ошибку (согласно комментарию mklement0, FileInfo не реализует IComparable)
$files = Get-ChildItem -Path $args[0]
foreach ($file in $files) {
if( $file.LastWriteTime -lt $myDate.addDays(-365)) {
Write-Host "Found One: $($file.Name)"
}
}
Использование args[0]
плохая практика. Вместо этого используйте именованный параметр
Param (
$Path
)
$myDate = Get-Date
$files = Get-ChildItem -Path $Path
...
Документация.
Get-ChildItem - измените параметры, если вы хотите, например, включить подкаталоги.
FileInfo - это то, к чему вы можете получить доступ в $files