Select-String
Recherche du texte dans des chaînes et des fichiers.
Syntaxe
File (Par défaut)
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
ObjectRaw
Select-String
[-Pattern] <String[]>
-InputObject <PSObject>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Object
Select-String
[-Pattern] <String[]>
-InputObject <PSObject>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
FileRaw
Select-String
[-Pattern] <String[]>
[-Path] <String[]>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
LiteralFileRaw
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
-Raw
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
LiteralFile
Select-String
[-Pattern] <String[]>
-LiteralPath <String[]>
[-Culture <String>]
[-SimpleMatch]
[-CaseSensitive]
[-Quiet]
[-List]
[-NoEmphasis]
[-Include <String[]>]
[-Exclude <String[]>]
[-NotMatch]
[-AllMatches]
[-Encoding <Encoding>]
[-Context <Int32[]>]
[<CommonParameters>]
Description
L’applet de commande Select-String 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 similaire à grep dans Unix ou findstr.exe dans 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 diriger Select-String pour rechercher 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 pouvez afficher toutes les correspondances de texte ou arrêter après la première correspondance dans chaque fichier d’entrée.
Select-String pouvez être utilisé pour afficher tout le texte qui ne correspond pas au modèle spécifié.
Vous pouvez également spécifier que 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 de commande Select-String.
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Les chaînes de texte Hello et hello sont envoyées au pipeline à l’applet de commande Select-String.
Select-String utilise le paramètre modèle de pour spécifier HELLO . Le paramètre CaseSensitive spécifie que le cas 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 de nom de fichier .txt 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 de commande Out-File 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 de nom de fichier .txt. 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 de commande Select-String 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 fichier *.txt dans le répertoire. Le paramètre Pattern spécifie qu’il correspond à 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:\Program Files\PowerShell\7\en-US\default.help.txt:67: The titles of conceptual topics begin with "About_".
C:\Program Files\PowerShell\7\en-US\default.help.txt:70: Get-Help About_<topic-name>
C:\Program Files\PowerShell\7\en-US\default.help.txt:93: Get-Help About_Modules : Displays help about PowerShell modules.
C:\Program Files\PowerShell\7\en-US\default.help.txt:97: about_Updatable_Help
La fonction est créée sur la ligne de commande PowerShell. Le mot clé function utilise le nom Search-Help. Appuyez sur Entrée pour commencer à ajouter des instructions à la fonction. À partir de l’invite de >>, 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 variable $PSHelp 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 fichier *.txt dans le répertoire.
La commande Select-String de la fonction utilise les paramètres Path et Pattern. Le paramètre Path utilise la variable $PSHelp 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 Select-String de 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 à propos des variables automatiques.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.Message} -Pattern 'Failed'
L’applet de commande Get-WinEvent utilise le paramètre LogName pour spécifier le journal des applications. 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 variable $Events est envoyée au pipeline à l’applet de commande Select-String.
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 échec 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 à travers le 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ès refusé messages 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 de commande Get-Command envoie des objets au pipeline au Out-File pour 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 modèle de spécifie Obtenir et définir comme modèle de recherche. Le paramètre NotMatch exclut Obtenir et Définir des résultats.
Select-String affiche la sortie dans la console PowerShell qui n’inclut pas Obtenir ou Définir.
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:986:Cmdlet Get-CmsMessage 6.1.0.0 Microsoft.PowerShell.Security
Command.txt:987:Cmdlet Get-Command 6.1.2.0 Microsoft.PowerShell.Core
> Command.txt:988:Cmdlet Get-ComputerInfo 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:990:Cmdlet Get-Content 6.1.0.0 Microsoft.PowerShell.Management
Command.txt:991:Cmdlet Get-ControlPanelItem 3.1.0.0 Microsoft.PowerShell.Management
Command.txt:992:Cmdlet Get-Credential 6.1.0.0 Microsoft.PowerShell.Security
L’applet de commande Get-Command envoie des objets au pipeline au Out-File pour 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 trouve 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 commande Get-Member.
$A = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell'
$A
C:\Program Files\PowerShell\7\en-US\default.help.txt:3: PowerShell Help System
C:\Program Files\PowerShell\7\en-US\default.help.txt:6: Displays help about PowerShell cmdlets and concepts.
C:\Program Files\PowerShell\7\en-US\default.help.txt:9: PowerShell Help describes PowerShell cmdlets
$A.Matches
Groups : {0}
Success : True
Name : 0
Captures : {0}
Index : 4
Length : 10
Value : PowerShell
$A.Matches.Length
8
$B = Get-ChildItem -Path "$PSHOME\en-US\*.txt" | Select-String -Pattern 'PowerShell' -AllMatches
$B.Matches.Length
9
L’applet de commande Get-ChildItem 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 fichier *.txt dans le répertoire. Les objets Get-ChildItem sont stockés dans la variable $A. La variable $A est envoyée au pipeline à l’applet de commande Select-String.
Select-String utilise le paramètre Pattern pour rechercher dans chaque fichier la chaîne powerShell.
À partir de la ligne de commande PowerShell, le contenu de la variable $A s’affiche. Il existe une ligne qui contient deux occurrences de la chaîne PowerShell.
La propriété $A.Matches répertorie la première occurrence du modèle PowerShell sur chaque ligne.
La propriété $A.Matches.Length compte la première occurrence du modèle PowerShell sur chaque ligne.
La variable $B utilise les mêmes applets de commande Get-ChildItem et Select-String, mais ajoute le paramètre AllMatches.
AllMatches recherche chaque occurrence du modèle PowerShell sur chaque ligne. Les objets stockés dans les variables $A et $B sont identiques.
La propriété $B.Matches.Length 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 résultat ToString() de l’objet redirigé n’est pas la même représentation de chaîne enrichie produite par le système de mise en forme de PowerShell. Vous devrez peut-être diriger les objets vers Out-String en premier.
Le piping en Out-String convertit la sortie mise en forme en un seul objet de chaîne à plusieurs lignes. Cela signifie que lorsque Select-String trouve une correspondance, elle génère la chaîne multiligne entière.
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
Le pipi en Out-String -Stream convertit la sortie mise en forme en plusieurs objets de chaîne à ligne unique. Cela signifie que lorsque Select-String trouve 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 trouve uniquement la première correspondance dans chaque ligne de texte.
Lorsque Select-String trouve plusieurs correspondances 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 au lieu d’utiliser SimpleMatch. Pour plus d’informations sur l’échappement des expressions régulières, consultez about_Regular_Expressions.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-CaseSensitive
Indique que les correspondances d’applet de commande respectent la casse. Par défaut, les correspondances ne respectent pas la casse.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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 sont 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 commande Select-String est envoyée au pipeline vers une autre commande Select-String, 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 le texte dans les lignes de contexte. Par conséquent, le paramètre Context n’est pas valide sur la commande Select-String de 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.
Propriétés du paramètre
| Type: | Int32[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Culture
Spécifie un nom de culture correspondant au modèle spécifié. Le paramètre culture doit être utilisé avec le paramètre SimpleMatch. Le comportement par défaut utilise la culture de l’espace d’exécution PowerShell actuel (session).
Pour obtenir la liste de toutes les cultures prises en charge, utilisez Get-Culture -ListAvailable commande.
De plus, ce paramètre accepte les arguments suivants :
- CurrentCulture, c’est la valeur par défaut ;
- Ordinal, qui est une comparaison binaire non linguistique ;
- Invariant, il s’agit d’une comparaison indépendante de la culture.
Avec Select-String -Culture Ordinal -CaseSensitive -SimpleMatch commande, vous bénéficiez d’une comparaison binaire la plus rapide.
Le paramètre Culture utilise la saisie semi-automatique de tabulation pour parcourir la liste des arguments qui spécifient les cultures disponibles. Pour répertorier tous les arguments disponibles, utilisez la commande suivante :
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Pour plus d’informations sur la propriété .NET CultureInfo.Name, consultez CultureInfo.Name.
Le paramètre Culture a été introduit dans PowerShell 7.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | Culture of the current PowerShell session |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Encoding
Spécifie le type d’encodage du fichier cible. La valeur par défaut est utf8NoBOM.
Les valeurs acceptables pour ce paramètre sont les suivantes :
-
ascii: utilise l’encodage pour le jeu de caractères ASCII (7 bits). -
ansi: Utilise l’encodage de la page de codes ANSI de la culture actuelle. Cette option a été ajoutée dans PowerShell 7.4. -
bigendianunicode: encode au format UTF-16 avec primauté des octets de poids fort. -
bigendianutf32: encode au format UTF-32 avec primauté des octets de poids fort. -
oem: utilise l’encodage par défaut pour les programmes MS-DOS et console. -
unicode: encode au format UTF-16 avec primauté des octets de poids faible. -
utf7: encode au format UTF-7. -
utf8: encode au format UTF-8. -
utf8BOM: encode au format UTF-8 avec indicateur d'ordre des octets (BOM) -
utf8NoBOM: encode au format UTF-8 sans marque d’ordre d’octet (BOM) -
utf32: encode au format UTF-32.
À compter de PowerShell 6.2, le paramètre d’encodage autorise également des ID numériques de pages de codes inscrites (comme -Encoding 1251) ou des noms de chaînes de pages de codes inscrites (comme -Encoding "windows-1251"). Pour plus d’informations, consultez la documentation .NET pour Encoding.CodePage.
À compter de PowerShell 7.4, vous pouvez utiliser la valeur Ansi pour le paramètre d’encodage afin de transmettre l’ID numérique de la page de codes ANSI de l'actuelle culture sans avoir à le spécifier manuellement.
Remarque
UTF-7* n’est plus recommandé d’utiliser. À partir de PowerShell 7.1, un avertissement est écrit si vous spécifiez utf7 pour le paramètre d’encodage .
Propriétés du paramètre
| Type: | Encoding |
| Valeur par défaut: | UTF8NoBOM |
| Valeurs acceptées: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Exclude
Excluez les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément de chemin ou un modèle, tel que *.txt. Les caractères génériques sont autorisés.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Include
Inclut les éléments spécifiés. La valeur de ce paramètre qualifie le paramètre Path. Entrez un élément de chemin ou un modèle, tel que *.txt. Les caractères génériques sont autorisés.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-InputObject
Spécifie le texte à rechercher. Entrez une variable qui contient 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 pour Select-String.
Lorsque vous dirigez plusieurs chaînes vers l’applet de commande Select-String, 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é si elle trouve le texte de recherche dans n’importe quelle chaîne.
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 la représentation ToString() de l’objet.
Propriétés du paramètre
| Type: | PSObject |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
Object
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
ObjectRaw
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | True |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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 qu’il trouve.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-LiteralPath
Spécifie le chemin d’accès aux fichiers à rechercher. La valeur du paramètre LiteralPath est utilisée exactement comme il est typé. 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 la section sur les règles de citation.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | PSPath, DP |
Jeux de paramètres
LiteralFileRaw
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
LiteralFile
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-NoEmphasis
Par défaut, Select-String met en surbrillance la chaîne qui correspond au modèle que vous avez recherché avec le paramètre Pattern. Le paramètre NoEmphasis désactive la mise en surbrillance.
L’accentuation utilise des couleurs négatives basées sur vos couleurs d’arrière-plan et de texte PowerShell. Par exemple, si vos couleurs PowerShell sont un arrière-plan noir avec du texte blanc. L’accent est un arrière-plan blanc avec du texte noir.
Ce paramètre a été introduit dans PowerShell 7.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-NotMatch
Le paramètre NotMatch recherche du texte qui ne correspond pas au modèle spécifié.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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, *.docou *.*. Si vous spécifiez uniquement un répertoire, la commande échoue.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | Local directory |
| Prend en charge les caractères génériques: | True |
| DontShow: | False |
Jeux de paramètres
File
| Position: | 1 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
FileRaw
| Position: | 1 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | True |
| Valeur des arguments restants: | False |
-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.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 0 |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
File
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
Object
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
LiteralFile
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-Raw
Provoque la sortie de l’applet de commande uniquement les chaînes correspondantes, au lieu de objets MatchInfo. Ce comportement est le plus similaire aux commandes Unix grep ou Windows findstr.exe .
Ce paramètre a été introduit dans PowerShell 7.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
ObjectRaw
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
FileRaw
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
LiteralFileRaw
| Position: | Named |
| Obligatoire: | True |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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 le texte dans le paramètre Pattern. Elle n’interprète pas la valeur du paramètre Pattern comme instruction d’expression régulière.
En outre, lorsque simpleMatch est utilisé, la propriété Correspond de l’objet MatchInfo retourné est vide.
Remarque
Lorsque ce paramètre est utilisé avec le paramètre AllMatches, la AllMatches est ignorée.
Propriétés du paramètre
| Type: | SwitchParameter |
| Valeur par défaut: | False |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
PSObject
Vous pouvez diriger n’importe quel objet qui a une méthode ToString() vers cette applet de commande.
Sorties
MatchInfo
Par défaut, cette applet de commande retourne un objet MatchInfo pour chaque correspondance trouvée.
Boolean
Lorsque vous utilisez le paramètre Quiet, cette applet de commande retourne une valeur booléenne indiquant si le modèle a été trouvé.
String
Lorsque vous utilisez le paramètre Raw, cette applet de commande retourne un ensemble d’objets String qui correspondent au modèle.
Notes
PowerShell inclut les alias suivants pour Select-String:
- Toutes les plateformes :
sls
Select-String est similaire à grep dans Unix ou findstr.exe dans Windows.
L’alias sls de l’applet de commande Select-String a été introduit dans PowerShell 3.0.
Remarque
Selon verbes approuvés pour les commandes PowerShell, le préfixe d’alias officiel pour les applets de commande Select-* est sc, et non sl. Par conséquent, l’alias approprié pour Select-String doit être scs, pas sls. Il s’agit d’une exception à cette règle.
Lors de la canalisation d’objets vers Select-String:
-
objets FileInfo sont traités comme un chemin d’accès à un fichier. Lorsque des chemins de fichier sont spécifiés,
Select-Stringrecherche le contenu du fichier, et non la représentationToString()de l’objet. - Le résultat
ToString()de l’objet redirigé n’est pas la même représentation de chaîne enrichie produite par le système de mise en forme de PowerShell. Vous devrez peut-être diriger les objets versOut-Stringen premier. Pour plus d’informations, consultez Exemple 10.
Pour utiliser Select-String, tapez le texte à 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 modèle de dans l’entrée.
La sortie par défaut de Select-String est 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 objets MatchInfo ont des propriétés telles que Nom de fichier et Ligne. 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 commande Get-Culture.
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 *