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 .

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 a Constant.
  • 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 usar Remove-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:

Consulte también