Compatibilidad con caracteres comodín en los parámetros del cmdlet
A menudo, tendrá que diseñar un cmdlet para ejecutarse en un grupo de recursos en lugar de en un único recurso. Por ejemplo, un cmdlet podría necesitar buscar todos los archivos de un almacén de datos que tengan el mismo nombre o extensión. Debe proporcionar compatibilidad con caracteres comodín al diseñar un cmdlet que se ejecutará en un grupo de recursos.
Nota:
A veces, el uso de caracteres comodín se conoce como .
Cmdlets de Windows PowerShell que usan caracteres comodín
Muchos cmdlets de Windows PowerShell admiten caracteres comodín para sus valores de parámetro. Por ejemplo, casi todos los cmdlets que tienen un parámetro Name
o Path
admiten caracteres comodín para estos parámetros. (Aunque la mayoría de los cmdlets que tienen un parámetro Path
también tienen un parámetro LiteralPath
que no admite caracteres comodín). El comando siguiente muestra cómo se usa un carácter comodín para devolver todos los cmdlets de la sesión actual cuyo nombre contiene el verbo Get.
Get-Command get-*
Caracteres comodín admitidos
Windows PowerShell admite los siguientes caracteres comodín.
Carácter comodín | Descripción | Ejemplo | Coincidencias | No coincide |
---|---|---|---|---|
* | Coincide con cero o más caracteres, empezando por la posición especificada. | a* |
A, ag, Apple | |
? | Coincide con cualquier carácter en la posición especificada. | ?n |
An, in, on | corrió |
[ ] | Coincide con un intervalo de caracteres | [a-l]ook |
book, cook, look | nook, tomé |
[ ] | Coincide con los caracteres especificados | [bn]ook |
book, nook | cook, look |
Al diseñar cmdlets que admiten caracteres comodín, permita combinaciones de caracteres comodín. Por ejemplo, el siguiente comando usa el cmdlet Get-ChildItem
para recuperar todos los archivos .txt que se encuentran en la carpeta C:\Techdocs y que comienzan con las letras "a" a "l".
Get-ChildItem C:\techdocs\[a-l]\*.txt
El comando anterior usa el carácter comodín de intervalo [a-l]
para especificar que el nombre de archivo debe comenzar con los caracteres "a" a "l" y usa el carácter comodín *
como marcador de posición para los caracteres entre la primera letra del nombre de archivo y la extensión .txt.
En el ejemplo siguiente se usa un patrón de caracteres comodín de rango que excluye la letra "d", pero que incluye todas las demás letras de "a" a "f".
Get-ChildItem C:\techdocs\[a-cef]\*.txt
Control de caracteres literales en patrones de caracteres comodín
Si el patrón de caracteres comodín que especifique contiene caracteres literales que no deben interpretarse como caracteres comodín, use el carácter de barra trasera (`
) como carácter de escape. Al especificar caracteres literales en la API de PowerShell, use una sola barra trasera. Al especificar caracteres literales en el símbolo del sistema de PowerShell, use dos acentos.
Por ejemplo, el siguiente patrón contiene dos corchetes que se deben tomar literalmente.
Cuando se usa en la API de PowerShell, use:
- "John Smith '[*']"
Cuando se usa desde el símbolo del sistema de PowerShell:
- "John Smith ''[*'']"
Este patrón coincide con "John Smith [Marketing]" o "John Smith [Desarrollo]". Por ejemplo:
PS> "John Smith [Marketing]" -like "John Smith ``[*``]"
True
PS> "John Smith [Development]" -like "John Smith ``[*``]"
True
Caracteres comodín y salida del cmdlet
Cuando los parámetros de cmdlet admiten caracteres comodín, la operación normalmente genera una salida de matriz.
En ocasiones, no tiene sentido admitir una salida de matriz porque el usuario puede usar solo un solo elemento. Por ejemplo, el cmdlet Set-Location
no admite la salida de la matriz porque el usuario establece solo una sola ubicación. En este caso, el cmdlet todavía admite caracteres comodín, pero fuerza la resolución a una sola ubicación.