Почему бы Get-ChildItem -Recurse |Remove-Item работает? - PullRequest
0 голосов
/ 28 декабря 2018

Я видел во многих местах (например, здесь , здесь или здесь ), где люди предлагают использовать

Get-ChildItem -Path "Some path" -Recurse | Remove-Item

для рекурсивного удаления каталога, но с какой стати это работает?

Когда я запускаю Get-ChildItem -Path "foo" -Recurse | % { "$_" }, я вижу, что каталоги были перечислены вначале, а затем - файлы.Он показывает что-то вроде этого:

1st_child_directory
2st_child_directory
...
1st_file_in_foo
2nd_file_in_foo
...
1st_file_in_1st_child_directory
2st_file_in_1st_child_directory
...
1st_file_in_2st_child_directory
...

и т. Д.

Если они будут переданы в Remove-Item в том же порядке, то Remove-Item сначала удалит каталоги (которые все ещене пустые), а затем удаляют файлы внутри каталогов (но каталоги уже должны быть удалены), и это немного нелогично ... Так почему бы Get-ChildItem -Recurse | Remove-Item работать и как это работает?

...