Comparteix a través de


about_Wildcards

Descripción breve

Describe cómo usar caracteres comodín en PowerShell.

Descripción larga

Los caracteres comodín representan uno o varios caracteres. Puede usarlos para crear patrones de palabra en comandos. Las expresiones comodín se usan con el operador -like o con cualquier parámetro que acepte caracteres comodín.

Por ejemplo, para que coincida con todos los archivos del directorio C:\Techdocs con una extensión de nombre de archivo .ppt, escriba:

Get-ChildItem C:\Techdocs\*.ppt

En este caso, el carácter comodín asterisco (*) representa los caracteres que aparecen antes de la extensión de nombre de archivo .ppt.

Las expresiones comodín son más sencillas que las expresiones regulares. Para obtener más información, vea about_Regular_Expressions.

PowerShell admite los siguientes caracteres comodín:

  • *: coincidencia con cero o más caracteres
    • a* coincide con aA, agy Apple
    • a* no coincide con banana
  • ?: en el caso de las cadenas, coincida con un carácter en esa posición.
    • ?n coincide con an, iny on
    • ?n no coincide con ran
  • ?: para archivos y directorios, coincida con cero o un carácter en esa posición.
    • ?.txt coincide con a.txt y b.txt
    • ?.txt no coincide con ab.txt
  • [ ]: coincidencia de un intervalo de caracteres
    • [a-l]ook coincide con book, cooky look
    • [a-l]ook no coincide con took
  • [ ]: coincidencia de caracteres específicos
    • [bc]ook coincide con book y cook
    • [bc]ook no coincide con hook
  • `*: coincide con cualquier carácter como literal (no comodín)
    • 12`*4 coincide con 12*4
    • 12`*4 no coincide con 1234

Puede incluir varios caracteres comodín en el mismo patrón de palabras. Por ejemplo, para buscar archivos de texto con nombres que comiencen por las letras un a través de l, escriba:

Get-ChildItem C:\Techdocs\[a-l]*.txt

Puede haber casos en los que quiera que coincida con el carácter literal en lugar de tratarlo como carácter comodín. En esos casos, puede usar el carácter de retroceso (`) para escapar el carácter comodín para que se compare con el valor de carácter literal. Por ejemplo, '*hello`?*' coincide con cadenas que contienen "hello?".

Muchos cmdlets aceptan caracteres comodín en valores de parámetro. En el tema de Ayuda de cada cmdlet se describe qué parámetros aceptan caracteres comodín. Para los parámetros que aceptan caracteres comodín, su uso no distingue mayúsculas de minúsculas.

Puede usar caracteres comodín en comandos y bloques de scripts, como para crear un patrón de palabras que represente valores de propiedad. Por ejemplo, el comando siguiente obtiene servicios en los que el valor de la propiedad ServiceType incluye Interactive.

Get-Service | Where-Object {$_.ServiceType -like "*Interactive*"}

En el ejemplo siguiente, la instrucción if incluye una condición que usa caracteres comodín para buscar valores de propiedad. Si el Descripción del punto de restauración incluye powerShell, el comando agrega el valor de la propiedad CreationTime del punto de restauración a un archivo de registro.

$p = Get-ComputerRestorePoint
foreach ($point in $p) {
  if ($point.Description -like "*PowerShell*") {
    Add-Content -Path C:\TechDocs\RestoreLog.txt "$($point.CreationTime)"
  }
}

Escape de caracteres comodín en nombres de archivo y directorio

Nota

La coincidencia de caracteres comodín para los elementos del sistema de archivos funciona de forma diferente a la de las cadenas. Para obtener más información, vea la sección comentarios de del método DirectoryInfo.GetFiles(String, EnumerationOptions).

Al intentar acceder a un archivo o directorio que contiene caracteres comodín, debe escapar los caracteres comodín. Tenga en cuenta los siguientes archivos:

PS> Get-ChildItem

    Directory: D:\temp\test

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---           11/3/2025  3:39 PM             41 file[1].txt
-a---           11/3/2025  3:39 PM             41 file[2].txt
-a---           11/3/2025  3:39 PM             41 file[3].txt

Los caracteres entre corchetes ([]) son caracteres comodín, por lo que deben escaparse al intentar obtener el archivo mediante uno de los cmdlets Item, como Get-Item.

PS> Get-Item file`[1`].txt

Sin embargo, se produjo un error en este ejemplo porque el valor de nombre de archivo está enlazado al parámetro Path , que admite caracteres comodín. En este caso, el `[ patrón se resuelve como sin formato [, que el parámetro Path interpreta como carácter comodín. Hay tres maneras de resolver esto:

  • Escape de los caracteres de retroceso.

    PS> Get-Item -Path file``[1``].txt
    
        Directory: D:\temp\test
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    -a---           11/3/2025  3:39 PM             41 file[1].txt
    
  • Coloque el nombre de archivo entre comillas simples para que las operaciones inversas no se expanden antes de enlazarse al parámetro Path .

    PS> Get-Item -Path 'file`[1`].txt'
    
        Directory: D:\temp\test
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    -a---           11/3/2025  3:39 PM             41 file[1].txt
    
  • Uso del parámetro LiteralPath

    PS> Get-Item -LiteralPath file[1].txt
    
        Directory: D:\temp\test
    
    Mode                 LastWriteTime         Length Name
    ----                 -------------         ------ ----
    -a---           11/3/2025  3:39 PM             41 file[1].txt
    

Consulte también