Chcę w prosty sposób wykluczyć folder systemowy z wyszukiwania w PowerShell.
Używam następującego skryptu:
$mysys = 'c:\windows'
PS C:\> Get-ChildItem -path . -Include *.txt -Exclude '$mysys' -Recurse
Zasadniczo chcę, aby cokolwiek pod c: \ windows było całkowicie ignorowane, jednak po uruchomieniu wyszukiwania ciągle pojawiają się błędy podczas wyszukiwania pod c: \ windows; aw niektórych przypadkach podaje również znalezione wyniki.
Błąd: (dlaczego nawet przechodzi pod c: \ windows, gdy go wykluczyłem)
Get-ChildItem : Access to the path 'C:\Windows\System32\LogFiles\WMI\RtBackup' is denied. At line:1
char: 1 + Get-ChildItem -path. -Inc * * .txt -Exclude '$ mysys' -Recurse -Dept ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo: PermissionDenied: (C: \ Windows \ Syst ... es \ WMI \ RtBackup: String) [Get-ChildItem], UnauthorizedAccessExcept ion + FullyQualifiedErrorId: DirUnauthorizedAccessError, Microsoft.PowerShell.Commands.GetChildItemCommand
Na przykład obejmuje: (należy to wszystko wykluczyć) (w zasadzie wszystko pod c: \ windows)
> > Directory: C:\Windows\WinSxS\amd64_microsoft-windows-c..iser-inboxdatafiles_31bf3856ad364e35_10.0.14393.0_none_9eeac2cef7a25999
>
>
> Mode LastWriteTime Length Name
>
> ---- ------------- ------ ----
> -a---- 7/16/2016 6:42 AM 855814 hwcompat_RS1.txt
> ------ 7/16/2016 6:42 AM 1764 hwexclude_RS1.txt
> ------ 7/16/2016 6:42 AM 1327 wucompat.txt
Zasadniczo chcę przeprowadzić wyszukiwanie rekurencyjne pod c: \, a następnie wykluczyć wszystko, czego nie chcę. Począwszy od c: \ windows i wszystkiego pod nim.