about_Function_Provider
Nombre del proveedor
Función
Unidades
Function:
Funcionalidades
ShouldProcess
Descripción breve
Proporciona acceso a las funciones definidas en PowerShell.
Descripción detallada
El proveedor de funciones de PowerShell le permite obtener, agregar, cambiar, borrar y eliminar las funciones y filtros en PowerShell.
Una función es un bloque de código con nombre que realiza una acción. Cuando se escribe el nombre de la función, se ejecuta el código de dicha función. Un filtro es un bloque de código con nombre que establece las condiciones de una acción. Puede escribir el nombre del filtro en lugar de la condición, como en un Where-Object
comando.
La unidad de función es un espacio de nombres plano que contiene solo la función y los objetos de filtro. Las funciones y los filtros no tienen elementos secundarios.
El proveedor de funciones admite los siguientes cmdlets, que se tratan en este artículo.
Tipos expuestos por este proveedor
Cada función es una instancia de la clase System.Management.Automation.FunctionInfo . Cada filtro es una instancia de la clase System.Management.Automation.FilterInfo .
Navegación por la unidad de función
El proveedor de funciones expone su almacén de datos en la Function:
unidad. Para trabajar con funciones, puede cambiar la ubicación a la Function:
unidad (Set-Location Function:
). O bien, puede trabajar desde otra unidad de PowerShell. Para hacer referencia a una función desde otra ubicación, use el nombre de unidad (Function:
) en la ruta de acceso.
Set-Location Function:
Para volver a una unidad del sistema de archivos, escriba el nombre de la unidad. Por ejemplo, escriba:
Set-Location C:
También puede trabajar con el proveedor de funciones desde cualquier otra unidad de PowerShell. Para hacer referencia a una función desde otra ubicación, use el nombre Function:
de la unidad en la ruta de acceso.
Nota:
PowerShell usa alias para permitirle trabajar con rutas de acceso de proveedor. Los comandos como dir
y ls
ahora son alias para Get-ChildItem, cd
es un alias para Set-Location. y pwd
es un alias para Get-Location.
Obtención de funciones
Este comando obtiene la lista de todas las funciones en la sesión actual. Puede usar este comando desde cualquier unidad de PowerShell.
Get-ChildItem -Path Function:
El proveedor de funciones no tiene contenedores, por lo que el comando anterior tiene el mismo efecto cuando se usa con Get-ChildItem
.
Get-ChildItem -Path Function:
Puede recuperar la definición de una función accediendo a la propiedad Definition , como se muestra a continuación.
(Get-Item -Path function:more).Definition
También puede recuperar la definición de una función mediante su ruta de acceso del proveedor precedida por el signo de dólar ($
).
$function:more
Para recuperar la definición de una función que tiene un guión (-
) en el nombre, ajuste el valor después de las llaves del inicio de sesión en dólar.
${function:Clear-Host}
Obtención de funciones seleccionadas
Este comando obtiene la man
función de la Function:
unidad. Usa el Get-Item
cmdlet para obtener la función . El operador de canalización (|
) envía el resultado a Format-Table
. El -Wrap
parámetro dirige el texto que no cabe en la línea a la línea siguiente. El -Autosize
parámetro cambia el tamaño de las columnas de la tabla para acomodar el texto.
Get-Item -Path man | Format-Table -Wrap -Autosize
Trabajar con rutas de acceso del proveedor de funciones
Estos comandos obtienen la función denominada c:
. El primer comando puede utilizarse en cualquier unidad. El segundo comando se usa en la Function:
unidad. Dado que el nombre termina en dos puntos, que es la sintaxis de una unidad, debe calificar la ruta de acceso con el nombre de la unidad. Dentro de la Function:
unidad, puede usar cualquiera de los formatos. En el segundo comando, el punto (.
) representa la ubicación actual.
PS C:\> Get-Item -Path Function:c:
PS Function:\> Get-Item -Path .\c:
Crear una función
Este comando usa el New-Item
cmdlet para crear una función denominada Win32:
.
La expresión entre llaves es el bloque de script representado por el nombre de función.
New-Item -Path Function:Win32: -Value {Set-Location C:\Windows\System32}
También puede crear una función escribiendola en la línea de comandos de PowerShell. Por ejemplo, tpe Function:Win32: {Set-Location C:\Windows\System32}
. Si está en la Function:
unidad, puede omitir el nombre de la unidad.
Eliminación de una función
Este comando elimina la more
función de la sesión actual.
Remove-Item Function:more
Cambio de una función
Este comando usa el Set-Item
cmdlet para cambiar la prompt
función para que muestre la hora antes de la ruta de acceso.
Set-Item -Path Function:prompt -Value {
'PS '+ (Get-Date -Format t) + " " + (Get-Location) + '> '
}
Cambiar el nombre de una función
Este comando usa el Rename-Item
cmdlet para cambiar el nombre de la help
función a gh
.
Rename-Item -Path Function:help -NewName gh
Copiar una función
Este comando copia la prompt
función en oldPrompt
, creando eficazmente un nuevo nombre para el bloque de script asociado a la función prompt.
Puede utilizarlo para guardar la función de símbolo del sistema original si tiene previsto cambiarla.
La propiedad Options de la nueva función tiene un valor de None
. Para cambiar el valor de la propiedad Options , use Set-Item
.
Copy-Item -Path Function:prompt -Destination Function:oldPrompt
Parámetros dinámicos
Los parámetros dinámicos son parámetros de cmdlet que agrega un proveedor de PowerShell y solo están disponibles cuando el cmdlet se usa en la unidad habilitada para el proveedor.
Opciones <[System.Management.Automation.ScopedItemOptions]>
Determina el valor de la propiedad Options de una función.
None
: no hay opciones.None
es el valor predeterminado.Constant
: no se puede eliminar la función y sus propiedades no se pueden cambiar.Constant
solo está disponible cuando se crea una función. No se puede cambiar la opción de una función existente aConstant
.Private
: la función solo está visible en el ámbito actual.- (no en ámbitos secundarios).
ReadOnly
: las propiedades de la función no se pueden cambiar excepto mediante el-Force
parámetro . Puede usarRemove-Item
para eliminar la función.AllScope
: la función se copia en todos los ámbitos nuevos que se crean.
Cmdlets admitidos
Uso de la canalización
Los cmdlets del proveedor aceptan entradas de canalización. Puede usar la canalización para simplificar la tarea mediante el envío de datos del proveedor de un cmdlet a otro cmdlet de proveedor. Para más información sobre cómo usar la canalización con cmdlets de proveedor, consulte las referencias de cmdlet proporcionadas en este artículo.
Ayuda
A partir de Windows PowerShell 3.0, puede obtener temas de ayuda personalizados sobre cmdlets de proveedor que explican cómo se comportan dichos cmdlets en una unidad del sistema de archivos.
Para obtener los temas de ayuda personalizados para la unidad del sistema de archivos, ejecute un comando Get-Help en una unidad del sistema de archivos o use el -Path
parámetro de Get-Help para especificar una unidad del sistema de archivos.
Get-Help Get-ChildItem
Get-Help Get-ChildItem -Path function: