Другие ответы указывают на главный недостаток в вашем скрипте, который заключается в отсутствии кавычек.Существует также некоторая избыточность двумя способами.
- Повтор
Get-ChildItem <something> | Remove-Item <something>
- Рекурсия по обе стороны трубы.
Рассмотрим следующее:
function Get-TempFolderItem {
foreach ($Local in (Get-ChildItem -Path "C:\Users\*\AppData\Local")) {
'Temp','Google\Chrome\User Data\Default\Cache' |
ForEach-Object { Get-ChildItem -Path "$Local\$_" -Recurse }
}
}
Get-TempFolderItem | Remove-Item -Force
Здесь меньше повторений, что упрощает отладку в случае ошибки.И если получение содержимого каталога является исчерпывающим, удаление не должно быть.
Поскольку вы говорите, что это в контексте тестирования, вам, вероятно, следует обратить внимание на насмешки над чем-то вроде удаления файлов.Для временных файлов не имеет большого значения, удаляете ли вы что-то, что вы не собирались делать, но обычно это то, чего вам следует избегать при тестировании.
Вы можете сделать это, написав
Mock Remove-Item {}
внутри блока Describe
.
Надеюсь, этот ответ будет вам полезен.