Select-String
Recherche du texte dans des chaînes et des fichiers.
Syntaxe
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <String>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
-InputObject <PSObject>
[-Pattern] <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <String>]
[-Context <Int32[]>]
[<CommonParameters>]
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <String>]
[-Context <Int32[]>]
[<CommonParameters>]
Description
L’applet Select-String
de commande utilise la correspondance d’expression régulière pour rechercher des modèles de texte dans des chaînes d’entrée et des fichiers. Vous pouvez utiliser Select-String
des fonctionnalités similaires à grep
celles d’UNIX ou findstr.exe
de Windows.
Select-String
est basé sur des lignes de texte. Par défaut, Select-String
recherche la première correspondance dans chaque ligne et, pour chaque correspondance, elle affiche le nom de fichier, le numéro de ligne et tout le texte de la ligne contenant la correspondance. Vous pouvez rechercher Select-String
plusieurs correspondances par ligne, afficher du texte avant et après la correspondance, ou afficher une valeur booléenne (True ou False) qui indique si une correspondance est trouvée.
Select-String
peut afficher toutes les correspondances de texte ou arrêter après la première correspondance dans chaque fichier d’entrée.
Select-String
peut être utilisé pour afficher tout le texte qui ne correspond pas au modèle spécifié.
Vous pouvez également spécifier ce qui Select-String
doit s’attendre à un encodage de caractères particulier, par exemple lorsque vous recherchez des fichiers de texte Unicode. Select-String
utilise la marque d’ordre d’octet (BOM) pour détecter le format d’encodage du fichier. Si le fichier n’a pas de boM, il suppose que l’encodage est UTF8.
Exemples
Exemple 1 : Rechercher une correspondance sensible à la casse
Cet exemple montre comment effectuer une correspondance sensible à la casse du texte envoyé au pipeline à l’applet Select-String
de commande.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Les chaînes de texte Hello et HELLO sont envoyées au pipeline à l’applet de Select-String
commande.
Select-String
utilise le paramètre Pattern pour spécifier HELLO. Le paramètre CaseSensitive spécifie que la casse doit correspondre uniquement au modèle majuscule. SimpleMatch est un paramètre facultatif et spécifie que la chaîne du modèle n’est pas interprétée comme une expression régulière.
Select-String
affiche HELLO dans la console PowerShell.
Exemple 2 : Rechercher des correspondances dans des fichiers texte
Cette commande recherche tous les fichiers avec l’extension .txt
de nom de fichier dans le répertoire actif. La sortie affiche les lignes de ces fichiers qui incluent la chaîne spécifiée.
Get-Alias | Out-File -FilePath .\Alias.txt
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\*.txt -Pattern 'Get-'
Alias.txt:8:Alias cat -> Get-Content
Alias.txt:28:Alias dir -> Get-ChildItem
Alias.txt:43:Alias gal -> Get-Alias
Command.txt:966:Cmdlet Get-Acl
Command.txt:967:Cmdlet Get-Alias
Dans cet exemple, Get-Alias
et Get-Command
sont utilisés avec l’applet Out-File
de commande pour créer deux fichiers texte dans le répertoire actif, Alias.txt et Command.txt.
Select-String
utilise le paramètre Path avec le caractère générique astérisque (*
) pour rechercher tous les fichiers dans le répertoire actif avec l’extension .txt
de nom de fichier. Le paramètre Pattern spécifie le texte à mettre en correspondance Get-. Select-String
affiche la sortie dans la console PowerShell. Le nom de fichier et le numéro de ligne précèdent chaque ligne de contenu qui contient une correspondance pour le paramètre Pattern .
Exemple 3 : Rechercher une correspondance de modèle
Dans cet exemple, plusieurs fichiers sont recherchés pour rechercher des correspondances pour le modèle spécifié. Le modèle utilise un quantificateur d’expression régulière. Pour plus d’informations, consultez about_Regular_Expressions.
Select-String -Path "$PSHOME\en-US\*.txt" -Pattern '\?'
C:\Program Files\PowerShell\6\en-US\default.help.txt:27: beginning at https://go.microsoft.com/fwlink/?LinkID=108518.
C:\Program Files\PowerShell\6\en-US\default.help.txt:50: or go to: https://go.microsoft.com/fwlink/?LinkID=210614
L’applet Select-String
de commande utilise deux paramètres, Path et Pattern. Le paramètre Path utilise la variable $PSHOME
qui spécifie le répertoire PowerShell. Le reste du chemin inclut le sous-répertoire en-US et spécifie chaque *.txt
fichier dans le répertoire. Le paramètre Pattern spécifie de faire correspondre un point d’interrogation (?
) dans chaque fichier. Une barre oblique inverse (\
) est utilisée comme caractère d’échappement et est nécessaire, car le point d’interrogation (?
) est un quantificateur d’expression régulière. Select-String
affiche la sortie dans la console PowerShell. Le nom de fichier et le numéro de ligne précèdent chaque ligne de contenu qui contient une correspondance pour le paramètre Pattern .
Exemple 4 : Utiliser Select-String dans une fonction
Cet exemple crée une fonction pour rechercher un modèle dans les fichiers d’aide PowerShell. Pour cet exemple, la fonction existe uniquement dans la session PowerShell. Lorsque la session PowerShell est fermée, la fonction est supprimée. Pour plus d’informations, consultez about_Functions.
function Search-Help
{
$PSHelp = "$PSHOME\en-US\*.txt"
Select-String -Path $PSHelp -Pattern 'About_'
}
Search-Help
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:2: about_ActivityCommonParameters
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:31: see about_WorkflowCommonParameters.
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:33: about_CommonParameters.
La fonction est créée sur la ligne de commande PowerShell. La Function
commande utilise le nom Search-Help
. Appuyez sur Entrée pour commencer à ajouter des instructions à la fonction. À partir de l’invite >>
, ajoutez chaque instruction et appuyez sur Entrée , comme indiqué dans l’exemple. Une fois le crochet fermant ajouté, vous êtes retourné à une invite PowerShell.
La fonction contient deux commandes. La $PSHelp
variable stocke le chemin d’accès aux fichiers d’aide PowerShell. $PSHOME
est le répertoire d’installation de PowerShell avec le sous-répertoire en-US qui spécifie chaque *.txt
fichier dans le répertoire.
La Select-String
commande de la fonction utilise les paramètres Path et Pattern . Le paramètre Path utilise la $PSHelp
variable pour obtenir le chemin d’accès. Le paramètre Pattern utilise la chaîne About_ comme critères de recherche.
Pour exécuter la fonction, tapez Search-Help
. La commande de Select-String
la fonction affiche la sortie dans la console PowerShell.
Exemple 5 : Rechercher une chaîne dans un journal des événements Windows
Cet exemple recherche une chaîne dans un journal des événements Windows. La variable $_
représente l’objet actuel dans le pipeline. Pour plus d’informations, consultez about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
L’applet Get-WinEvent
de commande utilise le paramètre LogName pour spécifier le journal d’application. Le paramètre MaxEvents obtient les 50 événements les plus récents du journal. Le contenu du journal est stocké dans la variable nommée $Events
.
La $Events
variable est envoyée au pipeline à l’applet Select-String
de commande. Select-String
utilise le paramètre InputObject . La $_
variable représente l’objet actuel et message
est une propriété de l’événement. Le paramètre Pattern spécifie la chaîne Failed et recherche les correspondances dans $_.message
. Select-String
affiche la sortie dans la console PowerShell.
Exemple 6 : Rechercher une chaîne dans les sous-répertoires
Cet exemple recherche un répertoire et tous ses sous-répertoires pour une chaîne de texte spécifique.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
utilise le paramètre Path pour spécifier C :\Windows\System32*.txt. Le paramètre Recurse inclut les sous-répertoires. Les objets sont envoyés vers le bas du pipeline vers Select-String
.
Select-String
utilise le paramètre Pattern et spécifie la chaîne Microsoft. Le paramètre CaseSensitive est utilisé pour correspondre à la casse exacte de la chaîne. Select-String
affiche la sortie dans la console PowerShell.
Remarque
En fonction de vos autorisations, vous pouvez voir accéder aux messages refusés dans la sortie.
Exemple 7 : Rechercher des chaînes qui ne correspondent pas à un modèle
Cet exemple montre comment exclure des lignes de données qui ne correspondent pas à un modèle.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
L’applet Get-Command
de commande envoie des objets au pipeline pour Out-File
créer le fichier Command.txt dans le répertoire actif. Select-String
utilise le paramètre Path pour spécifier le fichier Command.txt . Le paramètre Pattern spécifie Get et Set comme modèle de recherche. Le paramètre NotMatch exclut Get et Set des résultats.
Select-String
affiche la sortie dans la console PowerShell qui n’inclut pas Get ou Set.
Exemple 8 : Rechercher des lignes avant et après une correspondance
Cet exemple montre comment obtenir les lignes avant et après le modèle correspondant.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get-Computer' -Context 2, 3
Command.txt:1186:Cmdlet Get-CmsMessage 3.0.0.0 Microsoft.PowerShell.Security
Command.txt:1187:Cmdlet Get-Command 3.0.0.0 Microsoft.PowerShell.Core
> Command.txt:1188:Cmdlet Get-ComputerInfo 3.1.0.0 Microsoft.PowerShell.Management
> Command.txt:1189:Cmdlet Get-ComputerRestorePoint 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:1190:Cmdlet Get-Content 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:1191:Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:1192:Cmdlet Get-Counter 3.0.0.0 Microsoft.PowerShell.Diagnostics
L’applet Get-Command
de commande envoie des objets au pipeline pour Out-File
créer le fichier Command.txt dans le répertoire actif. Select-String
utilise le paramètre Path pour spécifier le fichier Command.txt . Le paramètre Pattern spécifie Get-Computer
comme modèle de recherche. Le paramètre Context utilise deux valeurs, avant et après, et marque les correspondances de modèle dans la sortie avec un crochet angle (>
). Le paramètre Context génère les deux lignes avant la première correspondance de modèle et trois lignes après la dernière correspondance de modèle.
Exemple 9 : Rechercher toutes les correspondances de modèle
Cet exemple montre comment le paramètre AllMatches recherche chaque correspondance de modèle dans une ligne de texte. Par défaut, Select-String
recherche uniquement la première occurrence d’un modèle dans une ligne de texte. Cet exemple utilise des propriétés d’objet trouvées avec l’applet de Get-Member
commande.
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:5: Describes the parameters that Windows PowerShell
C:\Windows\System32\WindowsPowerShell\v1.0\en-US\about_ActivityCommonParameters.help.txt:9: Windows PowerShell Workflow adds the activity common
$A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
$A.Matches.Length
2073
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
2200
L’applet Get-ChildItem
de commande utilise le paramètre Path . Le paramètre Path utilise la variable $PSHOME
qui spécifie le répertoire PowerShell. Le reste du chemin inclut le sous-répertoire en-US et spécifie chaque *.txt
fichier dans le répertoire. Les Get-ChildItem
objets sont stockés dans la $A
variable. La $A
variable est envoyée au pipeline à l’applet Select-String
de commande. Select-String
utilise le paramètre Pattern pour rechercher chaque fichier pour la chaîne PowerShell.
À partir de la ligne de commande PowerShell, le contenu de la $A
variable s’affiche. Il existe une ligne qui contient deux occurrences de la chaîne PowerShell.
La $A.Matches
propriété répertorie la première occurrence du modèle PowerShell sur chaque ligne.
La $A.Matches.Length
propriété compte la première occurrence du modèle PowerShell sur chaque ligne.
La $B
variable utilise les mêmes applets de commande et Select-String
les mêmesGet-ChildItem
, mais ajoute le paramètre AllMatches. AllMatches recherche chaque occurrence du modèle PowerShell sur chaque ligne. Les objets stockés dans les $A
variables et $B
les variables sont identiques.
La $B.Matches.Length
propriété augmente, car pour chaque ligne, chaque occurrence du modèle PowerShell est comptabilisée.
Exemple 10 : convertir des objets de pipeline en chaînes à l’aide de « Out-String »
Le ToString()
résultat de l’objet redirigé n’est pas la même représentation sous forme de chaîne riche produite par le système de mise en forme de PowerShell. Vous devrez peut-être diriger d’abord les objets Out-String
.
Piping pour Out-String
convertir la sortie mise en forme en un seul objet de chaîne à plusieurs lignes. Cela signifie qu’en cas Select-String
de recherche d’une correspondance, elle génère l’ensemble de la chaîne multiligne.
PS> $hash = @{
Name = 'foo'
Category = 'bar'
}
# !! NO output, due to .ToString() conversion
$hash | Select-String -Pattern 'foo'
# Out-String converts the output to a single multi-line string object
PS> $hash | Out-String | Select-String -Pattern 'foo'
Name Value
---- -----
Name foo
Category bar
# Out-String -Stream converts the output to a multiple single-line string objects
PS> $hash | Out-String -Stream | Select-String -Pattern 'foo'
Name foo
Piping pour Out-String -Stream
convertir la sortie mise en forme en plusieurs objets de chaîne à une seule ligne. Cela signifie qu’en cas Select-String
de recherche d’une correspondance, elle génère uniquement la ligne correspondante.
Paramètres
-AllMatches
Indique que l’applet de commande recherche plusieurs correspondances dans chaque ligne de texte. Sans ce paramètre, Select-String
recherche uniquement la première correspondance dans chaque ligne de texte.
Lorsque Select-String
plusieurs correspondances sont trouvées dans une ligne de texte, elle émet toujours un seul objet MatchInfo pour la ligne, mais la propriété Matches de l’objet contient toutes les correspondances.
Remarque
Ce paramètre est ignoré lorsqu’il est utilisé en combinaison avec le paramètre SimpleMatch . Si vous souhaitez renvoyer toutes les correspondances et le modèle que vous recherchez contient des caractères d’expression régulière, vous devez échapper à ces caractères plutôt que d’utiliser SimpleMatch. Pour plus d’informations sur l’échappement des expressions régulières, consultez about_Regular_Expressions .
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-CaseSensitive
Indique que les correspondances d’applet de commande respectent la casse. Par défaut, les correspondances ne respectent pas la casse.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Context
Capture le nombre spécifié de lignes avant et après la ligne qui correspond au modèle.
Si vous entrez un nombre comme valeur de ce paramètre, ce nombre détermine le nombre de lignes capturées avant et après la correspondance. Si vous entrez deux nombres comme valeur, le premier nombre détermine le nombre de lignes avant la correspondance, et le deuxième nombre détermine le nombre de lignes après la correspondance. Par exemple : -Context 2,3
.
Dans l’affichage par défaut, les lignes avec une correspondance sont indiquées par un crochet à angle droit (>
) (ASCII 62) dans la première colonne de l’affichage. Les lignes non marquées constituent le contexte.
Le paramètre Context ne modifie pas le nombre d’objets générés par Select-String
.
Select-String
génère un objet MatchInfo pour chaque correspondance. Le contexte est stocké sous la forme d’un tableau de chaînes dans la propriété Context de l’objet.
Lorsque la sortie d’une Select-String
commande est envoyée au pipeline vers une autre Select-String
commande, la commande de réception recherche uniquement le texte de la ligne correspondante. La ligne mise en correspondance est la valeur de la propriété Line de l’objet MatchInfo , et non du texte dans les lignes de contexte. Par conséquent, le paramètre Context n’est pas valide sur la commande de Select-String
réception.
Lorsque le contexte inclut une correspondance, l’objet MatchInfo pour chaque correspondance inclut toutes les lignes de contexte, mais les lignes qui se chevauchent n’apparaissent qu’une seule fois dans l’affichage.
Type: | Int32[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Encoding
Spécifie le type de codage du fichier cible. La valeur par défaut est default
.
Les valeurs acceptables pour ce paramètre sont les suivantes :
ascii
Utilise le jeu de caractères ASCII (7 bits).bigendianunicode
Utilise UTF-16 avec l’ordre d’octet big-endian.default
Utilise l’encodage qui correspond à la page de codes active du système (généralement ANSI).oem
Utilise l’encodage qui correspond à la page de codes OEM actuelle du système.unicode
Utilise UTF-16 avec l’ordre d’octet little-endian.utf7
Utilise UTF-7.utf8
Utilise UTF-8.utf32
Utilise UTF-32 avec l’ordre d’octet little-endian.
Type: | String |
Valeurs acceptées: | ASCII, BigEndianUnicode, Default, OEM, Unicode, UTF7, UTF8, UTF32 |
Position: | Named |
Valeur par défaut: | Default |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Exclude
Exclure les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path . Entrez un élément ou un modèle de chemin d’accès, tel que *.txt
. Les caractères génériques sont autorisés.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-Include
Inclut les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path . Entrez un élément ou un modèle de chemin d’accès, tel que *.txt
. Les caractères génériques sont autorisés.
Type: | String[] |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | True |
-InputObject
Spécifie le texte à rechercher. Entrez une variable contenant le texte, ou tapez une commande ou une expression qui obtient le texte.
L’utilisation du paramètre InputObject n’est pas la même que l’envoi de chaînes vers le bas du pipeline Select-String
.
Lorsque vous dirigez plusieurs chaînes vers l’applet Select-String
de commande, elle recherche le texte spécifié dans chaque chaîne et retourne chaque chaîne qui contient le texte de recherche.
Lorsque vous utilisez le paramètre InputObject pour envoyer une collection de chaînes, Select-String
traite la collection comme une chaîne combinée unique. Select-String
retourne les chaînes sous forme d’unité s’il trouve le texte de recherche dans n’importe quelle chaîne.
Type: | PSObject |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-List
Seule la première instance du texte correspondant est retournée à partir de chaque fichier d’entrée. Il s’agit du moyen le plus efficace de récupérer une liste de fichiers dont le contenu correspond à l’expression régulière.
Par défaut, Select-String
retourne un objet MatchInfo pour chaque correspondance trouvée.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-LiteralPath
Spécifie le chemin d'accès aux fichiers où effectuer la recherche. La valeur du paramètre LiteralPath est utilisée exactement comme elle est typée. Aucun caractère n’est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme séquences d’échappement. Pour plus d’informations, consultez about_Quoting_Rules.
Type: | String[] |
Alias: | PSPath |
Position: | Named |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | False |
-NotMatch
Le paramètre NotMatch recherche du texte qui ne correspond pas au modèle spécifié.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Path
Spécifie le chemin d’accès aux fichiers à rechercher. Les caractères génériques sont autorisés. L'emplacement par défaut est le répertoire local.
Spécifiez des fichiers dans le répertoire, tels que log1.txt
, *.doc
ou *.*
. Si vous spécifiez seulement un répertoire, la commande échoue.
Type: | String[] |
Position: | 1 |
Valeur par défaut: | Local directory |
Obligatoire: | True |
Accepter l'entrée de pipeline: | True |
Accepter les caractères génériques: | True |
-Pattern
Spécifie le texte à rechercher sur chaque ligne. La valeur du modèle est traitée comme une expression régulière.
Pour en savoir plus sur les expressions régulières, consultez about_Regular_Expressions.
Type: | String[] |
Position: | 0 |
Valeur par défaut: | None |
Obligatoire: | True |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-Quiet
Indique que l’applet de commande retourne une réponse simple au lieu d’un objet MatchInfo . La valeur retournée est $true
si le modèle est trouvé ou $null
si le modèle est introuvable.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
-SimpleMatch
Indique que l’applet de commande utilise une correspondance simple plutôt qu’une correspondance d’expression régulière. Dans une correspondance simple, Select-String
recherche l’entrée du texte dans le paramètre Pattern . Elle n’interprète pas la valeur du paramètre Pattern en tant qu’instruction d’expression régulière.
En outre, lorsque SimpleMatch est utilisé, la propriété Matches de l’objet MatchInfo retourné est vide.
Remarque
Lorsque ce paramètre est utilisé avec le paramètre AllMatches, allMatches est ignoré.
Type: | SwitchParameter |
Position: | Named |
Valeur par défaut: | False |
Obligatoire: | False |
Accepter l'entrée de pipeline: | False |
Accepter les caractères génériques: | False |
Entrées
Vous pouvez diriger n’importe quel objet qui a une ToString()
méthode vers cette applet de commande.
Sorties
Par défaut, cette applet de commande retourne un objet MatchInfo pour chaque correspondance trouvée.
Lorsque vous utilisez le paramètre Quiet , cette applet de commande retourne une valeur booléenne indiquant si le modèle a été trouvé.
Notes
Windows PowerShell inclut les alias suivants pour Select-String
:
sls
Select-String
est similaire à grep
celui d’UNIX ou findstr.exe
de Windows.
Remarque
Selon les verbes approuvés pour les commandes PowerShell, le préfixe d’alias officiel pour Select-*
les applets de commande n’est sc
pas sl
. Par conséquent, l’alias approprié pour Select-String
doit être scs
, et non sls
. Il s’agit d’une exception à cette règle.
Lors de la canalisation d’objets vers Select-String
:
- Les objets FileInfo sont traités comme un chemin d’accès à un fichier. Lorsque des chemins de fichier sont spécifiés,
Select-String
recherche le contenu du fichier, et non laToString()
représentation de l’objet. - Le
ToString()
résultat de l’objet redirigé n’est pas la même représentation sous forme de chaîne riche produite par le système de mise en forme de PowerShell. Vous devrez peut-être diriger d’abord les objetsOut-String
. Pour plus d’informations, consultez l’exemple 10.
Pour utiliser Select-String
, tapez le texte que vous souhaitez rechercher comme valeur du paramètre Pattern . Pour spécifier le texte à rechercher, utilisez les critères suivants :
- Tapez le texte dans une chaîne entre guillemets, puis dirigez-le vers
Select-String
. - Stockez une chaîne de texte dans une variable, puis spécifiez la variable comme valeur du paramètre InputObject .
- Si le texte est stocké dans des fichiers, utilisez le paramètre Path pour spécifier le chemin d’accès aux fichiers.
Par défaut, Select-String
interprète la valeur du paramètre Pattern en tant qu’expression régulière. Pour plus d’informations, consultez about_Regular_Expressions. Vous pouvez utiliser le paramètre SimpleMatch pour remplacer la correspondance d’expression régulière. Le paramètre SimpleMatch recherche des instances de la valeur du paramètre Pattern dans l’entrée.
La sortie par défaut est Select-String
un objet MatchInfo , qui inclut des informations détaillées sur les correspondances. Les informations contenues dans l’objet sont utiles lorsque vous recherchez du texte dans des fichiers, car les objets MatchInfo ont des propriétés telles que Filename et Line. Lorsque l’entrée ne provient pas du fichier, la valeur de ces paramètres est InputStream.
Si vous n’avez pas besoin des informations dans l’objet MatchInfo , utilisez le paramètre Quiet . Le paramètre Quiet retourne une valeur booléenne (True ou False) pour indiquer s’il a trouvé une correspondance, au lieu d’un objet MatchInfo .
Lors de la correspondance d’expressions, Select-String
utilise la culture actuelle définie pour le système. Pour rechercher la culture actuelle, utilisez l’applet de Get-Culture
commande.
Pour rechercher les propriétés d’un objet MatchInfo , tapez la commande suivante :
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *