Question
Get-Content
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
Récemment j'ai écris un script permettant de trier un log.Et pendant que j'écrivais le script je me suis aperçu d'un paramètre que je considère un peu comme le saint Graal ( à condition qu'il marche
-Filter <string>
Spécifie un filtre dans le format ou le langage du fournisseur. La valeur de ce paramètre qualifie le paramètre
Path. La syntaxe du filtre, notamment l'utilisation de caractères génériques, dépend du fournisseur. Les filtr
es sont plus efficaces que les autres paramètres, car le fournisseur les applique lors de la récupération des o
bjets, plutôt que de laisser le soin à Windows PowerShell de filtrer les objets une fois qu'ils ont été récupér
és.
ce qui m'intéresse est :
car le fournisseur les applique lors de la récupération des objets, plutôt que de laisser le soin à Windows PowerShell de filtrer les objets une fois qu'ils ont été récupérés
Car comme beaucoup d'autres mes fichiers de log sont ÉNORMES et le fait de pouvoir les trier lors de la récupération raccourcirait énormément l'exécution du script.
Mais seulement voilà après quelque recherches sur internet je n'ai rien trouvé.
(en tous cas aucun exemple avec un \"Get-Content\" -filter)
J'ai moi même essayé d'utiliser cette fonction sans succès.
voici ce que j'ai fait :
[code:1]param([string]$Date,[string]$Fichier)
$filtre_cmd = \"{where { $Date -match $_ } }\"
Get-Content $Fichier -Filter $filtre_cmd
[/code:1]
Je voulais donc savoir si quelqun avait déjà utilisé ce paramètre avec un Get-Content , même si je pense que c'est impossible ( ou pas très efficace), ce serait bête de passer à coté.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
ce paramètre attend une string pas un scriptblock, l'indication du type du paramètre est importante.
Comme dit dans la doc la notion de filtre est propre au provider , pour le FileSystem ce ne peut être que les jokers (*, ?).
Par défaut il n'y a que le provider FileSystem qui implémente cette capacité (filter), ton approche ne peut pas fonctionner sur le contenu du fichier :
[code:1]
gc -path *.ps1 -filter \"m*\"
#equivalent à
gc -path m*.ps1
[/code:1]
Reste que l'usage de ce paramètre n'est pas évident/correctement documenté.
Pour ton besoin j'utiliserais plutot Select-String.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Arthur
- Auteur du sujet
- Hors Ligne
- Membre elite
-
- Messages : 226
- Remerciements reçus 0
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Get-Content