Partager via


Select-String

Recherche du texte dans des chaînes et des fichiers.

Syntax

Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      [-Path] <String[]>
      [-SimpleMatch]
      [-CaseSensitive]
      [-Quiet]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      -InputObject <PSObject>
      [-Pattern] <String[]>
      -Raw
      [-SimpleMatch]
      [-CaseSensitive]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      -InputObject <PSObject>
      [-Pattern] <String[]>
      [-SimpleMatch]
      [-CaseSensitive]
      [-Quiet]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      [-Path] <String[]>
      -Raw
      [-SimpleMatch]
      [-CaseSensitive]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      -LiteralPath <String[]>
      -Raw
      [-SimpleMatch]
      [-CaseSensitive]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-Context <Int32[]>]
      [<CommonParameters>]
Select-String
      [-Culture <String>]
      [-Pattern] <String[]>
      -LiteralPath <String[]>
      [-SimpleMatch]
      [-CaseSensitive]
      [-Quiet]
      [-List]
      [-NoEmphasis]
      [-Include <String[]>]
      [-Exclude <String[]>]
      [-NotMatch]
      [-AllMatches]
      [-Encoding <Encoding>]
      [-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 et des fichiers d’entrée. Vous pouvez utiliser une utilisation 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, il 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 peut afficher toutes les correspondances de texte ou s’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 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 nomenclature, il suppose que l’encodage est UTF8.

Exemples

Exemple 1 : Rechercher une correspondance sensible à la casse

Cet exemple montre comment respecter la casse du texte envoyé dans le 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 vers le bas du 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 qui spécifie que la chaîne dans le 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 dans les 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 du répertoire actif avec l’extension .txtde nom de fichier . Le paramètre Pattern spécifie le texte correspondant à 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 trouver 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 d’accès 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:\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. La Function commande utilise le nom Search-Help. Appuyez sur Entrée pour commencer à ajouter des instructions à la fonction. À 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 dans la fonction utilise les paramètres Path et Pattern . Le paramètre Path utilise la $PSHelp variable pour obtenir le chemin. 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 la Select-String fonction affiche la sortie dans la console PowerShell.

Exemple 5 : Recherche pour 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 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 $Events variable est envoyée vers le bas du pipeline à l’applet de Select-String 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 met en correspondance la chaîne Failed et recherche des correspondances dans $_.message. Select-String affiche la sortie dans la console PowerShell.

Exemple 6 : Rechercher une chaîne dans des sous-répertoires

Cet exemple recherche une chaîne de texte spécifique dans un répertoire et tous ses sous-répertoires.

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.

Notes

En fonction de vos autorisations, vous pouvez voir des messages Accès refusé 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 vers le bas du 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: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 Get-Command de commande envoie des objets vers le bas du 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 d’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 ne trouve que la première occurrence d’un modèle dans une ligne de texte. Cet exemple utilise des propriétés d’objet qui sont trouvées avec l’applet de Get-Member commande.

$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 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 d’accès 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 vers le bas du pipeline à l’applet de Select-String commande. 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 $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 Get-ChildItem applets de commande 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 $A variables et $B 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 canal n’est pas la même représentation de chaîne riche produite par le système de mise en forme de PowerShell. Par conséquent, vous devrez peut-être d’abord diriger les objets vers Out-String .

La conversion vers Out-String convertit la sortie mise en forme en un seul objet de chaîne multiligne. Cela signifie que lorsque Select-String trouve une correspondance, il 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

La conversion vers Out-String -Stream convertit la sortie mise en forme en plusieurs objets de chaîne à une seule ligne. Cela signifie que lorsque Select-String trouve une correspondance, il 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 ne trouve que la première correspondance dans chaque ligne de texte.

Quand Select-String trouve plusieurs correspondances dans une ligne de texte, il n’émet toujours qu’un seul objet MatchInfo pour la ligne, mais la propriété Matches de l’objet contient toutes les correspondances.

Notes

Ce paramètre est ignoré lorsqu’il est utilisé en combinaison avec le paramètre SimpleMatch . Si vous souhaitez retourner toutes les correspondances et que le modèle que vous recherchez contient des caractères d’expression régulière, vous devez éviter ces caractères au lieu d’utiliser SimpleMatch. Pour plus d’informations sur l’échappement des expressions régulières, consultez about_Regular_Expressions .

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Context

Capture le nombre spécifié de lignes avant et après la ligne correspondant 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 dans le pipeline vers une autre Select-String commande, la commande de réception recherche uniquement le texte de la ligne correspondante. La ligne correspondante 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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 la Get-Culture -ListAvailable commande .

En outre, ce paramètre accepte les arguments suivants :

  • CurrentCulture, c’est-à-dire par défaut ;
  • Ordinal, c’est-à-dire la comparaison binaire non linguistique ;
  • Invariant, c’est-à-dire la comparaison indépendante de la culture.

Avec Select-String -Culture Ordinal -CaseSensitive -SimpleMatch la commande, vous bénéficiez de la comparaison binaire la plus rapide.

Le paramètre Culture utilise la saisie semi-automatique de tabulation pour faire défiler 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é CultureInfo.Name .NET, consultez CultureInfo.Name.

Le paramètre Culture a été introduit dans PowerShell 7.

Type:String
Position:Named
Default value:Culture of the current PowerShell session
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Encoding

Spécifie le type de codage 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).
  • bigendianunicode: encode au format UTF-16 à l’aide de l’ordre d’octets big-endian.
  • bigendianutf32: encode au format UTF-32 à l’aide de l’ordre d’octets big-endian.
  • oem: utilise l’encodage par défaut pour les programmes MS-DOS et console.
  • unicode: encode au format UTF-16 à l’aide de l’ordre d’octet little-endian.
  • utf7: encode au format UTF-7.
  • utf8: encode au format UTF-8.
  • utf8BOM: encode au format UTF-8 avec une marque d’ordre d’octet (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 Encoding autorise également les ID numériques des pages de codes inscrites (comme -Encoding 1251) ou les noms de chaîne de pages de codes inscrites (comme -Encoding "windows-1251"). Pour plus d’informations, consultez la documentation .NET pour Encoding.CodePage.

Notes

Il n’est plus recommandé d’utiliser UTF-7*. À partir de PowerShell 7.1, un avertissement est écrit si vous spécifiez utf7 pour le paramètre Encoding .

Type:Encoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Default value:UTF8NoBOM
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 chose que l’envoi de chaînes dans le 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 contenant 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 en tant qu’unité si elle trouve le texte de recherche dans une chaîne quelconque.

Les objets FileInfo sont traités comme un chemin d’accès à un fichier. Lorsque des chemins d’accès de fichier sont spécifiés, Select-String recherche le contenu du fichier, et non la ToString() représentation de l’objet.

Type:PSObject
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-List

Seule la première instance de 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
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 telle qu’elle est tapé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 des séquences d’échappement. Pour plus d’informations, consultez about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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’accentuation est un arrière-plan blanc avec du texte noir.

Ce paramètre a été introduit dans PowerShell 7.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-NotMatch

Le paramètre NotMatch recherche le texte qui ne correspond pas au modèle spécifié.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Spécifie le chemin des fichiers à rechercher. Les caractères génériques sont autorisés. L'emplacement par défaut est le répertoire local.

Spécifiez les fichiers dans le répertoire, tels que log1.txt, *.docou *.*. Si vous spécifiez seulement un répertoire, la commande échoue.

Type:String[]
Position:1
Default value:Local directory
Required:True
Accept pipeline input:True
Accept wildcard characters:True

-Pattern

Spécifie le texte à rechercher sur chaque ligne. La valeur de 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
Default value:None
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-Quiet

Indique que l’applet de commande renvoie une valeur booléenne (True ou False) au lieu d’un objet MatchInfo . La valeur est True si le modèle est trouvé ; sinon, la valeur est False.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Raw

Fait en sorte que l’applet de commande génère uniquement les chaînes correspondantes, plutôt que les objets MatchInfo . Il s’agit du comportement le plus similaire aux commandes Unix grep ou Windows findstr.exe .

Ce paramètre a été introduit dans PowerShell 7.

Type:SwitchParameter
Position:Named
Default value:False
Required:True
Accept pipeline input:False
Accept wildcard characters:False

-SimpleMatch

Indique que l’applet de commande utilise une correspondance simple plutôt qu’une correspondance d’expression régulière. Dans une simple correspondance, Select-String recherche le texte dans le paramètre Pattern dans l’entrée. Il n’interprète pas la valeur du paramètre Pattern comme une instruction d’expression régulière.

En outre, lorsque SimpleMatch est utilisé, la propriété Matches de l’objet MatchInfo retourné est vide.

Notes

Lorsque ce paramètre est utilisé avec le paramètre AllMatches , allMatches est ignoré.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entrées

PSObject

Vous pouvez diriger n’importe quel objet qui a une ToString() méthode 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 Select-String commande a été introduit dans PowerShell 3.0.

Notes

Selon Les verbes approuvés pour les commandes PowerShell, le préfixe d’alias officiel pour Select-* les applets de commande est sc, et non 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 d’accès de fichier sont spécifiés, Select-String recherche le contenu du fichier, et non la ToString() représentation de l’objet.
  • Le ToString() résultat de l’objet canal n’est pas la même représentation de chaîne riche produite par le système de mise en forme de PowerShell. Par conséquent, vous devrez peut-être d’abord diriger les objets vers Out-String . Pour plus d’informations, consultez 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 comme une 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 les instances de la valeur du paramètre Pattern dans l’entrée.

La sortie par défaut de Select-String est un objet MatchInfo , qui comprend 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 de 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 *