Da documentazione:confuso con il parametro -Include del cmdlet Get-ChildItem
-Include
recupera solo gli elementi specificati. Il valore di questo parametro qualifica il parametro Path. Immettere un percorso elemento o motivo, ad esempio "* .txt". I caratteri jolly sono consentiti.
Il Includere parametro è valido solo quando il comando include il parametro Recurse o il percorso conduce il contenuto di una directory , come ad esempio C: \ Windows *, dove il carattere jolly specifica i contenuto del C: \ directory di Windows.
Il mio primo accordo era:
c:\test\a.txt
c:\test\b.txt
Quindi, per ottenere 'a.txt' e 'b.txt' posso scrivere:
gci -Path "c:\test\*" -Include "*.txt"
E questo funziona. Ma ora prendere in considerazione tale gerarchia:
c:\test\a.txt
c:\test\b.txt
c:\test\c.txt\c.txt
lo stesso comando restituisce: a.txt, b.txt, c.txt
La logica attuale sembra essere:
-Include usato per abbinare tutte le entità specificate da -Path. Se l'elemento corrispondente è un file, restituirlo. Se abbinato elemento è una cartella, guardare dentro e ritorno corrispondenza primi bambini di livello.
Inoltre, la documentazione dire:
Il Includere parametro è valido solo quando il comando include il parametro Recurse o sentiero conduce il contenuto di una directory ...
Questo è sbagliato pure. Per esempio.
gci -Path "c:\test" -Include "*.txt"
Non restituisce nulla, mentre senza -Include ottengo il contenuto della cartella. Quindi -Include è sicuramente "efficace". Cosa succede veramente qui? Il parametro -Path specifica "c: \ test" e l'opzione -Include cerca di trovare questo percorso. Poiché "* .txt" non corrisponde a "test", quindi non viene restituito nulla. Ma guardate questo:
gci -Path "c:\test" -Include "*t"
Esso restituisce a.txt, b.txt e c.txt come "* t" abbinato "test" e abbinati tutti gli elementi figlio.
Dopo tutto, anche sapere come prevede brani ora, non capisco quando utilizzarlo. Perché ho bisogno di cercare all'interno delle sottocartelle? Perché dovrebbe essere così complesso?
Sto usando PowerShell-v2.0-CTP3 e l'esempio produce set vuoto. – alex2k8
@ alex2k8, Non sono sicuro di cosa dire qui. Ho provato questo esempio su 1.0 e una versione successiva 2.0, entrambi producono gli stessi risultati. – JaredPar
@Jared, questo è strano. Per favore, puoi provare gci -path c: \ * -in *. Vedo i bambini di c: \ e tutte le sue sottocartelle a un livello inferiore. Ecco la descrizione simile http://www.eggheadcafe.com/software/aspnet/32624832/getchilditem-include-qu.aspx – alex2k8