Select-String
Busca texto en cadenas y archivos.
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
El Select-String
cmdlet usa la coincidencia de expresiones regulares para buscar patrones de texto en cadenas y archivos de entrada. Puede usar Select-String
de forma similar a grep
en UNIX o findstr.exe
en Windows.
Select-String
se basa en líneas de texto. De forma predeterminada, Select-String
busca la primera coincidencia en cada línea y, para cada coincidencia, muestra el nombre de archivo, el número de línea y todo el texto de la línea que contiene la coincidencia. Puede dirigir Select-String
para buscar varias coincidencias por línea, mostrar texto antes y después de la coincidencia, o mostrar un valor booleano (True o False) que indica si se encuentra una coincidencia.
Select-String
puede mostrar todas las coincidencias de texto o detener después de la primera coincidencia en cada archivo de entrada.
Select-String
se puede usar para mostrar todo el texto que no coincide con el patrón especificado.
También puede especificar que Select-String
debe esperar una codificación de caracteres determinada, como cuando se buscan archivos de texto Unicode. Select-String
usa la marca de orden de bytes (BOM) para detectar el formato de codificación del archivo. Si el archivo no tiene boM, se supone que la codificación es UTF8.
Ejemplos
Ejemplo 1: Buscar una coincidencia que distingue mayúsculas de minúsculas
En este ejemplo se realiza una coincidencia con distinción entre mayúsculas y minúsculas del texto que se envió a la canalización al Select-String
cmdlet .
'Hello', 'HELLO' | Select-String -Pattern 'HELLO' -CaseSensitive -SimpleMatch
Las cadenas de texto Hello y HELLO se envían por la canalización al Select-String
cmdlet .
Select-String
usa el parámetro Pattern para especificar HELLO. El parámetro CaseSensitive especifica que el caso debe coincidir solo con el patrón de mayúsculas y minúsculas. SimpleMatch es un parámetro opcional y especifica que la cadena del patrón no se interpreta como una expresión regular.
Select-String
muestra HELLO en la consola de PowerShell.
Ejemplo 2: Buscar coincidencias en archivos de texto
Este comando busca todos los archivos con la .txt
extensión de nombre de archivo en el directorio actual. La salida muestra las líneas de esos archivos que incluyen la cadena especificada.
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
En este ejemplo, Get-Alias
y Get-Command
se usan con el Out-File
cmdlet para crear dos archivos de texto en el directorio actual, Alias.txt y Command.txt.
Select-String
usa el parámetro Path con el carácter comodín asterisco (*
) para buscar en todos los archivos del directorio actual con la extensión .txt
de nombre de archivo . El parámetro Pattern especifica el texto que debe coincidir con Get-. Select-String
muestra la salida en la consola de PowerShell. El nombre de archivo y el número de línea preceden a cada línea de contenido que contiene una coincidencia para el parámetro Pattern .
Ejemplo 3: Buscar una coincidencia de patrón
En este ejemplo, se buscan varios archivos para buscar coincidencias para el patrón especificado. El patrón usa un cuantificador de expresiones regulares. Para obtener más información, consulte 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
El Select-String
cmdlet usa dos parámetros, Path y Pattern. El parámetro Path usa la variable $PSHOME
que especifica el directorio de PowerShell. El resto de la ruta de acceso incluye el subdirectorio en-US y especifica cada *.txt
archivo del directorio. El parámetro Pattern especifica que coincida con un signo de interrogación (?
) en cada archivo. Una barra diagonal inversa (\
) se usa como carácter de escape y es necesaria porque el signo de interrogación (?
) es un cuantificador de expresiones regulares. Select-String
muestra la salida en la consola de PowerShell. El nombre de archivo y el número de línea preceden a cada línea de contenido que contiene una coincidencia para el parámetro Pattern .
Ejemplo 4: Uso de Select-String en una función
En este ejemplo se crea una función para buscar un patrón en los archivos de ayuda de PowerShell. En este ejemplo, la función solo existe en la sesión de PowerShell. Cuando se cierra la sesión de PowerShell, se elimina la función. Para obtener más información, consulte 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 función se crea en la línea de comandos de PowerShell. El Function
comando usa el nombre Search-Help
. Presione Entrar para empezar a agregar instrucciones a la función. En el símbolo del >>
sistema, agregue cada instrucción y presione Entrar como se muestra en el ejemplo. Después de agregar el corchete de cierre, se le devolverá a un símbolo del sistema de PowerShell.
La función contiene dos comandos. La $PSHelp
variable almacena la ruta de acceso a los archivos de ayuda de PowerShell. $PSHOME
es el directorio de instalación de PowerShell con el subdirectorio en-US que especifica cada *.txt
archivo del directorio.
El Select-String
comando de la función usa los parámetros Path y Pattern . El parámetro Path usa la $PSHelp
variable para obtener la ruta de acceso. El parámetro Pattern usa la cadena About_ como criterios de búsqueda.
Para ejecutar la función , escriba Search-Help
. El comando de la Select-String
función muestra la salida en la consola de PowerShell.
Ejemplo 5: Búsqueda de una cadena en un registro de eventos de Windows
En este ejemplo se busca una cadena en un registro de eventos de Windows. La variable $_
representa el objeto actual de la canalización. Para obtener más información, vea about_Automatic_Variables.
$Events = Get-WinEvent -LogName Application -MaxEvents 50
$Events | Select-String -InputObject {$_.message} -Pattern 'Failed'
El Get-WinEvent
cmdlet usa el parámetro LogName para especificar el registro de aplicaciones. El parámetro MaxEvents obtiene los 50 eventos más recientes del registro. El contenido del registro se almacena en la variable denominada $Events
.
La $Events
variable se envía por la canalización al Select-String
cmdlet . Select-String
usa el parámetro InputObject . La $_
variable representa el objeto actual y message
es una propiedad del evento. El parámetro Pattern especifica la cadena Failed y busca coincidencias en $_.message
. Select-String
muestra la salida en la consola de PowerShell.
Ejemplo 6: Buscar una cadena en subdirectorios
En este ejemplo se busca en un directorio y en todos sus subdirectorios una cadena de texto específica.
Get-ChildItem -Path C:\Windows\System32\*.txt -Recurse | Select-String -Pattern 'Microsoft' -CaseSensitive
Get-ChildItem
usa el parámetro Path para especificar C:\Windows\System32*.txt. El parámetro Recurse incluye los subdirectorios. Los objetos se envían por la canalización a Select-String
.
Select-String
usa el parámetro Pattern y especifica la cadena Microsoft. El parámetro CaseSensitive se usa para coincidir con el caso exacto de la cadena. Select-String
muestra la salida en la consola de PowerShell.
Nota
En función de los permisos, es posible que vea Mensajes denegados de acceso en la salida.
Ejemplo 7: Búsqueda de cadenas que no coinciden con un patrón
En este ejemplo se muestra cómo excluir líneas de datos que no coinciden con un patrón.
Get-Command | Out-File -FilePath .\Command.txt
Select-String -Path .\Command.txt -Pattern 'Get', 'Set' -NotMatch
El Get-Command
cmdlet envía objetos a la Out-File
canalización para crear el archivo Command.txt en el directorio actual. Select-String
usa el parámetro Path para especificar el archivo Command.txt . El parámetro Pattern especifica Get y Set como patrón de búsqueda. El parámetro NotMatch excluye Get y Set de los resultados.
Select-String
muestra la salida en la consola de PowerShell que no incluye Get o Set.
Ejemplo 8: Buscar líneas antes y después de una coincidencia
En este ejemplo se muestra cómo obtener las líneas antes y después del patrón coincidente.
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
El Get-Command
cmdlet envía objetos a la Out-File
canalización para crear el archivo Command.txt en el directorio actual. Select-String
usa el parámetro Path para especificar el archivo Command.txt . El parámetro Pattern especifica Get-Computer
como patrón de búsqueda. El parámetro Context usa dos valores, antes y después, y marca las coincidencias de patrón en la salida con un corchete angular (>
). El parámetro Context genera las dos líneas antes de que coincida el primer patrón y tres líneas después de la última coincidencia de patrón.
Ejemplo 9: Buscar todas las coincidencias de patrones
En este ejemplo se muestra cómo el parámetro AllMatches busca cada coincidencia de patrón en una línea de texto. De forma predeterminada, Select-String
solo busca la primera aparición de un patrón en una línea de texto. En este ejemplo se usan propiedades de objeto que se encuentran con el Get-Member
cmdlet .
$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
El Get-ChildItem
cmdlet usa el parámetro Path . El parámetro Path usa la variable $PSHOME
que especifica el directorio de PowerShell. El resto de la ruta de acceso incluye el subdirectorio en-US y especifica cada *.txt
archivo del directorio. Los Get-ChildItem
objetos se almacenan en la $A
variable . La $A
variable se envía por la canalización al Select-String
cmdlet . Select-String
usa el parámetro Pattern para buscar en cada archivo la cadena de PowerShell.
En la línea de comandos de PowerShell, se muestra el contenido de la $A
variable. Hay una línea que contiene dos apariciones de la cadena de PowerShell.
La $A.Matches
propiedad enumera la primera aparición del patrón de PowerShell en cada línea.
La $A.Matches.Length
propiedad cuenta la primera aparición del patrón de PowerShell en cada línea.
La $B
variable usa los mismos Get-ChildItem
cmdlets y Select-String
, pero agrega el parámetro AllMatches . AllMatches busca cada aparición del patrón powerShell en cada línea. Los objetos almacenados en las $A
variables y $B
son idénticos.
La $B.Matches.Length
propiedad aumenta porque, para cada línea, se cuenta cada aparición del patrón de PowerShell .
Ejemplo 10: Conversión de objetos de canalización en cadenas mediante "Out-String"
El ToString()
resultado del objeto canalización no es la misma representación de cadena enriquecida generada por el sistema de formato de PowerShell. Por lo tanto, es posible que tenga que canalizar primero los objetos.Out-String
Canalización para Out-String
convertir la salida con formato en un único objeto de cadena de varias líneas. Esto significa que, cuando Select-String
encuentra una coincidencia, genera toda la cadena de varias líneas.
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
Canalización para Out-String -Stream
convertir la salida con formato en varios objetos de cadena de una sola línea. Esto significa que, cuando Select-String
encuentra una coincidencia, genera solo la línea coincidente.
Parámetros
-AllMatches
Indica que el cmdlet busca más de una coincidencia en cada línea de texto. Sin este parámetro, Select-String
solo busca la primera coincidencia en cada línea de texto.
Cuando Select-String
encuentra más de una coincidencia en una línea de texto, sigue emitiendo solo un objeto MatchInfo para la línea, pero la propiedad Matches del objeto contiene todas las coincidencias.
Nota
Este parámetro se omite cuando se usa en combinación con el parámetro SimpleMatch . Si desea devolver todas las coincidencias y el patrón que está buscando contiene caracteres de expresión regular, debe escapar esos caracteres en lugar de usar SimpleMatch. Consulte about_Regular_Expressions para obtener más información sobre el escape de expresiones regulares.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-CaseSensitive
Indica que las coincidencias del cmdlet distinguen mayúsculas de minúsculas. De forma predeterminada, las coincidencias no distinguen mayúsculas de minúsculas.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Context
Captura el número especificado de líneas antes y después de la línea que coincide con el patrón.
Si escribe un número como valor de este parámetro, ese número determina el número de líneas que se capturan antes y después de la coincidencia. Si escribe dos números como valor, el primer número determina el número de líneas antes de la coincidencia y el segundo número determina el número de líneas después de la coincidencia. Por ejemplo, -Context 2,3
.
En la pantalla predeterminada, las líneas con una coincidencia se indican mediante un corchete angular derecho () (>
ASCII 62) en la primera columna de la pantalla. Las líneas sin marcar son el contexto.
El parámetro Context no cambia el número de objetos generados por Select-String
.
Select-String
genera un objeto MatchInfo para cada coincidencia. El contexto se almacena como una matriz de cadenas en la propiedad Context del objeto .
Cuando la salida de un Select-String
comando se envía por la canalización a otro Select-String
comando, el comando receptor busca solo el texto de la línea coincidente. La línea coincidente es el valor de la propiedad Line del objeto MatchInfo , no el texto de las líneas de contexto. Como resultado, el parámetro Context no es válido en el comando receptor Select-String
.
Cuando el contexto incluye una coincidencia, el objeto MatchInfo para cada coincidencia incluye todas las líneas de contexto, pero las líneas superpuestas aparecen solo una vez en la pantalla.
Type: | Int32[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Culture
Especifica un nombre de referencia cultural para que coincida con el patrón especificado. El parámetro Culture debe usarse con el parámetro SimpleMatch . El comportamiento predeterminado usa la referencia cultural del espacio de ejecución de PowerShell actual (sesión).
Para obtener una lista de todas las referencias culturales admitidas, use el Get-Culture -ListAvailable
comando .
Además, este parámetro acepta los argumentos siguientes:
- CurrentCulture, es el valor predeterminado;
- Ordinal, que es una comparación binaria no lingüística;
- Invariable, que es una comparación independiente de la referencia cultural.
Con Select-String -Culture Ordinal -CaseSensitive -SimpleMatch
el comando obtiene una comparación binaria más rápida.
El parámetro Culture usa la finalización de tabulación para desplazarse por la lista de argumentos que especifican las referencias culturales disponibles. Para enumerar todos los argumentos disponibles, use el siguiente comando:
(Get-Command Select-String).Parameters.Culture.Attributes.ValidValues
Para obtener más información sobre la propiedad de CultureInfo.Name .NET, vea CultureInfo.Name.
El parámetro Culture se introdujo en 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
Especifica el tipo de codificación del archivo de destino. El valor predeterminado es utf8NoBOM
.
Los valores aceptables para este parámetro son los siguientes:
ascii
: usa la codificación para el juego de caracteres ASCII (7 bits).bigendianunicode
: codifica en formato UTF-16 mediante el orden de bytes big-endian.bigendianutf32
: codifica en formato UTF-32 mediante el orden de bytes big-endian.oem
: usa la codificación predeterminada para los programas de consola y MS-DOS.unicode
: codifica en formato UTF-16 mediante el orden de bytes little-endian.utf7
: codifica en formato UTF-7.utf8
: codifica en formato UTF-8.utf8BOM
: codifica en formato UTF-8 con marca de orden de bytes (BOM)utf8NoBOM
: codifica en formato UTF-8 sin marca de orden de bytes (BOM)utf32
: codifica en formato UTF-32.
A partir de PowerShell 6.2, el parámetro Encoding también permite identificadores numéricos de páginas de códigos registradas (como -Encoding 1251
) o nombres de cadena de páginas de códigos registradas (como -Encoding "windows-1251"
). Para obtener más información, vea la documentación de .NET para Encoding.CodePage.
Nota
UTF-7* ya no se recomienda usar. A partir de PowerShell 7.1, se escribe una advertencia si especifica utf7
para el parámetro 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
Excluye los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un elemento o patrón de ruta de acceso, como *.txt
. Se permiten los caracteres comodín.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Include
Incluye los elementos especificados. El valor de este parámetro califica el parámetro Path. Escriba un elemento o patrón de ruta de acceso, como *.txt
. Se permiten los caracteres comodín.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-InputObject
Especifica el texto que se va a buscar. Especifique una variable que contenga el texto, o escriba un comando o una expresión que obtenga el texto.
El uso del parámetro InputObject no es lo mismo que enviar cadenas a la canalización a Select-String
.
Al canalizar más de una cadena al Select-String
cmdlet, busca el texto especificado en cada cadena y devuelve cada cadena que contiene el texto de búsqueda.
Cuando se usa el parámetro InputObject para enviar una colección de cadenas, Select-String
trata la colección como una sola cadena combinada. Select-String
devuelve las cadenas como una unidad si encuentra el texto de búsqueda en cualquier cadena.
Los objetos FileInfo se tratan como una ruta de acceso a un archivo. Cuando se especifican rutas de acceso de archivo, Select-String
busca en el contenido del archivo, no en la ToString()
representación del objeto.
Type: | PSObject |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-List
Solo se devuelve la primera instancia de texto coincidente de cada archivo de entrada. Esta es la manera más eficaz de recuperar una lista de archivos que tienen contenido que coincide con la expresión regular.
De forma predeterminada, Select-String
devuelve un objeto MatchInfo para cada coincidencia que encuentra.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-LiteralPath
Especifica la ruta de acceso a los archivos en los que se va a buscar. El valor del parámetro LiteralPath se usa exactamente como se escribe. Ninguno de los caracteres se interpreta como caracteres comodín. Si la ruta de acceso contiene caracteres de escape, escríbalos entre comillas simples. Las comillas simples indican a PowerShell que no interprete caracteres como secuencias de escape. Para obtener más información, consulte about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoEmphasis
De forma predeterminada, Select-String
resalta la cadena que coincide con el patrón que ha buscado con el parámetro Pattern . El parámetro NoEmphasis deshabilita el resaltado.
El énfasis usa colores negativos en función del fondo de PowerShell y los colores de texto. Por ejemplo, si los colores de PowerShell son un fondo negro con texto blanco. El énfasis es un fondo blanco con texto negro.
Este parámetro se introdujo en PowerShell 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-NotMatch
El parámetro NotMatch busca texto que no coincide con el patrón especificado.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Especifica la ruta de acceso a los archivos que se van a buscar. Se permiten los caracteres comodín. La ubicación predeterminada es el directorio local.
Especifique los archivos en el directorio, como log1.txt
, *.doc
o *.*
. Si solo especifica un directorio, se produce un error en el comando.
Type: | String[] |
Position: | 1 |
Default value: | Local directory |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Pattern
Especifica el texto que se va a buscar en cada línea. El valor de patrón se trata como una expresión regular.
Para obtener información sobre las expresiones regulares, consulte about_Regular_Expressions.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Quiet
Indica que el cmdlet devuelve un valor booleano (True o False), en lugar de un objeto MatchInfo . El valor es True si se encuentra el patrón; de lo contrario, el valor es False.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Raw
Hace que el cmdlet solo produzca las cadenas coincidentes, en lugar de los objetos MatchInfo . Este es el comportamiento más similar a los comandos grep de Unix o Windows findstr.exe .
Este parámetro se introdujo en PowerShell 7.
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SimpleMatch
Indica que el cmdlet usa una coincidencia simple en lugar de una coincidencia de expresión regular. En una coincidencia simple, Select-String
busca la entrada del texto en el parámetro Pattern . No interpreta el valor del parámetro Pattern como una instrucción de expresión regular.
Además, cuando se usa SimpleMatch , la propiedad Matches del objeto MatchInfo devuelto está vacía.
Nota
Cuando este parámetro se usa con el parámetro AllMatches , se omite AllMatches .
Type: | SwitchParameter |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
Puede canalizar cualquier objeto que tenga un ToString()
método a este cmdlet.
Salidas
De forma predeterminada, este cmdlet devuelve un objeto MatchInfo para cada coincidencia encontrada.
Cuando se usa el parámetro Quiet , este cmdlet devuelve un valor booleano que indica si se encontró el patrón.
Cuando se usa el parámetro Raw , este cmdlet devuelve un conjunto de objetos String que coinciden con el patrón.
Notas
PowerShell incluye los siguientes alias para Select-String
:
- Todas las plataformas:
sls
Select-String
es similar a grep
en UNIX o findstr.exe
en Windows.
El sls
alias del Select-String
cmdlet se introdujo en PowerShell 3.0.
Nota
Según verbos aprobados para comandos de PowerShell, el prefijo de alias oficial para Select-*
cmdlets es sc
, no sl
. Por lo tanto, el alias adecuado para Select-String
debe ser scs
, no sls
. Se trata de una excepción a esta regla.
Al canalizar objetos a Select-String
:
- Los objetos FileInfo se tratan como una ruta de acceso a un archivo. Cuando se especifican rutas de acceso de archivo,
Select-String
busca en el contenido del archivo, no en laToString()
representación del objeto. - El
ToString()
resultado del objeto canalización no es la misma representación de cadena enriquecida generada por el sistema de formato de PowerShell. Por lo tanto, es posible que tenga que canalizar primero los objetos.Out-String
Para obtener más información, vea Ejemplo 10.
Para usar Select-String
, escriba el texto que desea buscar como el valor del parámetro Pattern . Para especificar el texto que se va a buscar, use los criterios siguientes:
- Escriba el texto de una cadena entre comillas y, a continuación, canalítelo a
Select-String
. - Almacene una cadena de texto en una variable y, a continuación, especifique la variable como el valor del parámetro InputObject .
- Si el texto se almacena en archivos, use el parámetro Path para especificar la ruta de acceso a los archivos.
De forma predeterminada, Select-String
interpreta el valor del parámetro Pattern como una expresión regular. Para obtener más información, consulte about_Regular_Expressions. Puede usar el parámetro SimpleMatch para invalidar la coincidencia de expresiones regulares. El parámetro SimpleMatch busca instancias del valor del parámetro Pattern en la entrada.
La salida predeterminada de Select-String
es un objeto MatchInfo , que incluye información detallada sobre las coincidencias. La información del objeto es útil cuando se busca texto en archivos, ya que los objetos MatchInfo tienen propiedades como Filename y Line. Cuando la entrada no procede del archivo, el valor de estos parámetros es InputStream.
Si no necesita la información en el objeto MatchInfo , use el parámetro Quiet . El parámetro Quiet devuelve un valor booleano (True o False) para indicar si encontró una coincidencia, en lugar de un objeto MatchInfo .
Al buscar frases coincidentes, Select-String
usa la referencia cultural actual establecida para el sistema. Para buscar la referencia cultural actual, use el Get-Culture
cmdlet .
Para buscar las propiedades de un objeto MatchInfo , escriba el siguiente comando:
Select-String -Path test.txt -Pattern 'test' | Get-Member | Format-List -Property *