Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Get-Childitem. Исключить каталоги их содержимое при выполнении команды (http://forum.oszone.net/showthread.php?t=351698)

epoddubniy 10-08-2022 15:47 2990084

Get-Childitem. Исключить каталоги их содержимое при выполнении команды
 
Здравствуйте!

На диске Е: много каталогов. Нужно получить результат команды таким образом, чтобы не вошли каталоги progs и ===KSC_BASE_BACKUP===. Затем результат отправить дальше по конвейеру: отобрать по дате и удалить

Код:

$Data=Get-Date -Format "dd.MM.yyyy"
function {Get-ChildItem "E:\" -Recurse -Exclude "progs","===KSC_BASE_BACKUP===" | where-object {$_.creationtime -lt (get-date).date.adddays(0) -and $_.creationtime -ge (get-date).date.adddays(-5)} | Remove-Item -Force}
function

Поправьте пожалуйста, чтобы получился желаемый результат! Спасибо!!!

Sham 10-08-2022 20:40 2990108

в -Exclude паттерны же, наверное "*\progs\*","*\===KSC_BASE_BACKUP===\*"

epoddubniy 11-08-2022 11:21 2990157

Цитата:

Цитата Sham
в -Exclude паттерны же, наверное "*\progs\*","*\===KSC_BASE_BACKUP===\*" »

пробовал так, все равно в результаты попадали файлы из этих каталогов(((

Код:

Get-ChildItem "E:\*" -Recurse -Exclude "*\===KSC_BASE_BACKUP===\*" | where-object {$_.creationtime -lt (get-date).date.adddays(1) -and $_.creationtime -ge (get-date).date.adddays(-5)}
Вот такой вывод:
Код:

...

    Каталог: E:\===KSC_BASE_BACKUP===\klbackup2022-08-08#13-10-36\Packages\MDM4IOS\exec


Mode                LastWriteTime    Length Name                                                                                                                       
----                -------------    ------ ----                                                                                                                       
-a---        13.07.2022    14:45    708608 klcfginst.msi                                                                                                             
-a---        13.07.2022    14:45      4463 klever.json                                                                                                               
-a---        13.07.2022    14:45      22342 license.txt                                                                                                               
-a---        13.07.2022    14:45      3744 mdm4ios.kud                                                                                                               
-a---        13.07.2022    14:45  12746752 MDM4IOS.msi                                                                                                               
-a---        13.07.2022    14:45    4458008 setup.exe                                                                                                                 
-a---        13.07.2022    14:45        654 ss_install.xml                                                                                                             

...

Дальше по конвейеру на удаление не передавал, т.к. в отбор уже попали объекты, которые не нужно удалять

DJ Mogarych 11-08-2022 11:46 2990161

Код:

-exclude "*progs*","*KSC_BASE_BACKUP*"

Sham 13-08-2022 04:02 2990321

обходной путь - это добавить проверку в where-object
Код:

-and $_.FullName -notmatch '\\(?:===KSC_BASE_BACKUP===|progs)\\'
в -exclude наверное проверяются только дочерние элементы без папок.

epoddubniy 18-08-2022 14:33 2990662

Цитата:

Цитата DJ Mogarych
-exclude "*progs*","*KSC_BASE_BACKUP*" »

да, такой вариант тоже пробовал, тоже почему-то не помогает

Sham, большое Вам Спасибо! Ваш вариант отработал так, как нужно было
Код:

Get-ChildItem "E:\" -Recurse | where-object {$_.creationtime -lt (get-date).date.adddays(0) -and $_.creationtime -ge (get-date).date.adddays(-5) -and $_.FullName -notmatch '\\(?:===KSC_BASE_BACKUP===|progs)\\'}


Время: 08:34.

Время: 08:34.
© OSzone.net 2001-