Get-ChildItem не возвращает элементов в сценарии, но работает из командной строки - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть скрипт, который выполняет некоторую обработку, а затем должен удалить файлы из папки, которые не были изменены в течение 10 дней.

Сначала я получаю дату 10 дней назад с:

$deleteDate = (Get-Date).AddDays(-10)

Затем я пытаюсь получить список файлов с:

$deleteFiles = Get-ChildItem -Path $destinationPath | Where-Object { $_.LastWriteTime -le $deleteDate }

Однако это невернуть любые предметы (я вывожу $deleteFiles.Length).Если я запускаю точно такую ​​же команду, сначала устанавливая переменные из командной строки powershell, она возвращает файлы.

Я безуспешно пытался добавить параметр -Force.

1 Ответ

0 голосов
/ 18 сентября 2018

Эта целевая папка содержит только файлы или файлы находятся во вложенных папках?

$del=Get-ChildItem -Path $destinationPath -recurse | Where-Object {!$_.PsIsContainer -and ($_.LastWriteTime -le $deleteDate) }

Это будет список файлов во всех вложенных папках -recurse и только файлы ! $ _. PsIsContainer

Это работает для меня:

$destinationPath = "c:\temp"
$deleteDate = (Get-Date).AddDays(-10)
$del=Get-ChildItem -Path $destinationPath -recurse | Where-Object {!$_.PsIsContainer -and ($_.LastWriteTime -le $deleteDate) }
$del.length

И возвращает количество файлов.

...