2015-02-19 12 views
6

Czy ktoś może wyjaśnić różnicę między opcją -include i -filter w komendzie get-childitem.Różnica między -include i -filter w get-childitem

Poniżej znajdują się dwa fragmenty kodu, które próbuję wykonać. Obaj służyć, aby dowiedzieć się pliki tekstowe w danym katalogu:

PS C:\Users\352997> get-childitem -path Desktop\Extras -filter *.txt 


    Directory: C:\Users\352997\Desktop\Extras 


Mode    LastWriteTime  Length Name 
----    -------------  ------ ---- 
-a---  12/22/2014 4:05 PM  140 Expense_report.txt 
-a---   1/14/2015 4:41 PM  211 Extras.txt 
-a---   2/10/2015 2:46 PM  259 Learn Dutch.txt 

PS C:\Users\352997> get-childitem -path Desktop\Extras -include *.txt 

--The powyższe polecenie nie wytwarza wynik ----

Odpowiedz

5
  1. Filter parametr jest realizowany przez dostawcę. Jest skuteczny, ponieważ stosuje się podczas pobierania obiektów. Komenda Get-PSprovider pokazuje dostawców, którzy implementują parametr "filter". Na przykład w moim systemie jest tylko dwóch dostawców: parametr ActiveDirectory i FileSystem

  2. Include parametr jest implementowany przez Powershell. Działa tylko w połączeniu z parametrem Recurse (jak MSDN opisuje here).

  3. To ciekawe, że:

    get-childitem -path Desktop\Extras\ -include *.txt 
    

    powraca nic

    get-childitem -path Desktop\Extras\* -include *.txt 
    

    Zwraca listę plików * .txt

Może to tylko niuanse realizacji.

także zobaczyć tę doskonałą blogu: http://tfl09.blogspot.com/2012/02/get-childitem-and-theinclude-and-filter.html

+0

dotycząceTwojego podpunkcie 3 .: Jak stwierdzono w https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/get -childitem? view = powershell-5.1, "Parametr -Include jest skuteczny tylko wtedy, gdy polecenie zawiera parametr -Recurse lub ścieżka prowadzi do zawartości katalogu, takiego jak C: \ Windows *, gdzie" * "jest symbolem wieloznacznym znak określa zawartość katalogu C: \ Windows. " – pholpar

Powiązane problemy