(негодования псто) Get-ChildItem вместе с '-exclude' не работает в корне
Три, три рабочих дня я ломал голову, почему рабочий скрипт перестал удалять старые бэкапы. Точнее, проблема возникла сильно раньше, но была несрочной, а тут вдруг припёрло. Не руками же удалять, в самом деле.
В ощщем, опуская очень долгий и очень нудный поиск по тырнету, сразу к найденному мной результату: если операция отбора папок или файлов используется в корне (корне диска или корне шары - это важно !), то вот так
оно не работает, и вот так
оно тоже не работает. Ну то есть ошибки не выдаёт, но и ничего полезного тоже не выдаёт.
А вот так
оно работать будет. Ну и без '-exclude' тоже работать будет, ага.
Почему ? Патамушто. Патамушто погромистов не порют на конюшнях по выходным, вот почему.
В документации, разумеется, это не описано от слова "совсем".
И потому при работе в корне (диска или шары) нужно использовать другой командлет, "
или так:
Командлет сей появился только в PS 5, стоит иметь в виду.
В ощщем, опуская очень долгий и очень нудный поиск по тырнету, сразу к найденному мной результату: если операция отбора папок или файлов используется в корне (корне диска или корне шары - это важно !), то вот так
Get-ChildItem 'c:\' -exclude '_*'
оно не работает, и вот так
Get-ChildItem '\\server\share$\' -exclude '_*'
оно тоже не работает. Ну то есть ошибки не выдаёт, но и ничего полезного тоже не выдаёт.
А вот так
Get-ChildItem '\\server\share$\folder\' -exclude '_*'
оно работать будет. Ну и без '-exclude' тоже работать будет, ага.
Почему ? Патамушто. Патамушто погромистов не порют на конюшнях по выходным, вот почему.
В документации, разумеется, это не описано от слова "совсем".
И потому при работе в корне (диска или шары) нужно использовать другой командлет, "
Get-Item", вот так:Get-Item 'c:\*' -exclude '_*'
или так:
Get-Item '\\server\share$\*' -exclude '_*'
Командлет сей появился только в PS 5, стоит иметь в виду.