Share via


New-Item

Crea un elemento nuevo.

Syntax

New-Item
   [-Path] <String[]>
   [-ItemType <String>]
   [-Value <Object>]
   [-Force]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]
New-Item
   [[-Path] <String[]>]
   -Name <String>
   [-ItemType <String>]
   [-Value <Object>]
   [-Force]
   [-Credential <PSCredential>]
   [-WhatIf]
   [-Confirm]
   [<CommonParameters>]

Description

El New-Item cmdlet crea un nuevo elemento y establece su valor. Los tipos de elementos que se pueden crear dependen de la ubicación del elemento. Por ejemplo, en el sistema de archivos, New-Item crea archivos y carpetas. En el Registro, New-Item crea claves y entradas del Registro.

New-Item también puede establecer el valor de los elementos que crea. Por ejemplo, cuando crea un nuevo archivo, New-Item puede agregar contenido inicial al archivo.

Ejemplos

Ejemplo 1: Create un archivo en el directorio actual

Este comando crea un archivo de texto denominado "testfile1.txt" en el directorio actual. El punto ('.') del valor del parámetro Path indica el directorio actual. El texto entre comillas que sigue al parámetro Value se agrega al archivo como contenido.

New-Item -Path . -Name "testfile1.txt" -ItemType "file" -Value "This is a text string."

Ejemplo 2: Create un directorio

Este comando crea un directorio denominado "Logfiles" en la C: unidad. El parámetro ItemType especifica que el nuevo elemento es un directorio, no un archivo u otro objeto del sistema de archivos.

New-Item -Path "c:\" -Name "logfiles" -ItemType "directory"

Ejemplo 3: Create un perfil

Este comando crea un perfil de PowerShell en la ruta de acceso especificada por la $profile variable .

Puede usar perfiles para personalizar PowerShell. $profile es una variable automática (integrada) que almacena la ruta de acceso y el nombre de archivo del perfil "CurrentUser/CurrentHost". De forma predeterminada, el perfil no existe, aunque PowerShell almacena una ruta de acceso y un nombre de archivo para él.

En este comando, la $profile variable representa la ruta de acceso del archivo. El parámetro ItemType especifica que el comando crea un archivo. El parámetro Force permite crear un archivo en la ruta de acceso del perfil, incluso cuando los directorios de la ruta de acceso no existen.

Después de crear un perfil, puede escribir alias, funciones y scripts en el perfil para personalizar el shell.

Para más información, consulte about_Automatic_Variables y about_Profiles.

New-Item -Path $profile -ItemType "file" -Force

Ejemplo 4: Create un directorio en otro directorio

En este ejemplo se crea un nuevo directorio Scripts en el directorio "C:\PS-Test".

El nombre del nuevo elemento de directorio, "Scripts", se incluye en el valor del parámetro Path , en lugar de especificarse en el valor de Name. Como indica la sintaxis, cualquier formato de comando es válido.

New-Item -ItemType "directory" -Path "c:\ps-test\scripts"

Ejemplo 5: Create varios archivos

En este ejemplo se crean archivos en dos directorios diferentes. Dado que Path toma varias cadenas, puede usarla para crear varios elementos.

New-Item -ItemType "file" -Path "c:\ps-test\test.txt", "c:\ps-test\Logs\test.log"

Ejemplo 6: Uso de caracteres comodín para crear archivos en varios directorios

El New-Item cmdlet admite caracteres comodín en el parámetro Path . El comando siguiente crea un temp.txt archivo en todos los directorios especificados por los caracteres comodín en el parámetro Path .

Get-ChildItem -Path C:\Temp\

Directory:  C:\Temp

Mode                LastWriteTime     Length Name
----                -------------     ------ ----
d-----        5/15/2019   6:45 AM        1   One
d-----        5/15/2019   6:45 AM        1   Two
d-----        5/15/2019   6:45 AM        1   Three

New-Item -Path C:\Temp\* -Name temp.txt -ItemType File | Select-Object FullName

FullName
--------
C:\Temp\One\temp.txt
C:\Temp\Three\temp.txt
C:\Temp\Two\temp.txt

El Get-ChildItem cmdlet muestra tres directorios en el C:\Temp directorio . Con caracteres comodín, el New-Item cmdlet crea un temp.txt archivo en todos los directorios del directorio actual. El New-Item cmdlet genera los elementos creados, que se canalizan para Select-Object comprobar las rutas de acceso de los archivos recién creados.

Ejemplo 7: Create un vínculo simbólico a un archivo o carpeta

En este ejemplo se crea un vínculo simbólico al archivo Notice.txt en la carpeta actual.

$link = New-Item -ItemType SymbolicLink -Path .\link -Target .\Notice.txt
$link | Select-Object LinkType, Target

LinkType     Target
--------     ------
SymbolicLink {.\Notice.txt}

En este ejemplo, Target es un alias para el parámetro Value . El destino del vínculo simbólico puede ser una ruta de acceso relativa. Antes de PowerShell v6.2, el destino debe ser una ruta de acceso completa.

A partir de PowerShell 7.1, ahora puede crear en un elemento SymbolicLink en una carpeta de Windows mediante una ruta de acceso relativa.

Ejemplo 8: Usar el parámetro -Force para intentar volver a crear carpetas

En este ejemplo se crea una carpeta con un archivo dentro. A continuación, intenta crear la misma carpeta mediante -Force. No sobrescribirá la carpeta, sino que simplemente devolverá el objeto de carpeta existente con el archivo creado intacto.

PS> New-Item -Path .\TestFolder -ItemType Directory
PS> New-Item -Path .\TestFolder\TestFile.txt -ItemType File

PS> New-Item -Path .\TestFolder -ItemType Directory -Force

    Directory: C:\
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----         5/1/2020   8:03 AM                TestFolder

PS> Get-ChildItem .\TestFolder\

    Directory: C:\TestFolder
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:03 AM              0 TestFile.txt

Ejemplo 9: Usar el parámetro -Force para sobrescribir los archivos existentes

En este ejemplo se crea un archivo con un valor y, a continuación, se vuelve a crear el archivo mediante -Force. Esto sobrescribe el archivo existente y perderá su contenido, ya que puede ver por la propiedad length.

PS> New-Item ./TestFile.txt -ItemType File -Value 'This is just a test file'

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM             24 TestFile.txt

New-Item ./TestFile.txt -ItemType File -Force

    Directory: C:\Source\Test
Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----         5/1/2020   8:32 AM              0 TestFile.txt

Nota

Cuando se usa New-Item con el -Force modificador para crear claves del Registro, el comando se comportará igual que al sobrescribir un archivo. Si la clave del Registro ya existe, la clave y todas las propiedades y valores se sobrescribirán con una clave del Registro vacía.

Parámetros

-Confirm

Le solicita su confirmación antes de ejecutar el cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Credential

Nota

Este parámetro no es compatible con ningún proveedor instalado con PowerShell. Para suplantar a otro usuario o elevar las credenciales al ejecutar este cmdlet, use Invoke-Command.

Type:PSCredential
Position:Named
Default value:Current user
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Force

Obliga a este cmdlet a crear un elemento que escribe sobre un elemento de solo lectura existente. La implementación varía en función del proveedor. Incluso con el parámetro Force , el cmdlet no puede invalidar las restricciones de seguridad.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-ItemType

Especifica el tipo especificado por el proveedor del elemento nuevo. Los valores disponibles de este parámetro dependen del proveedor actual que esté usando.

Si la ubicación está en una FileSystem unidad, se permiten los siguientes valores:

  • Archivo
  • Directorio
  • SymbolicLink
  • unión
  • HardLink

Nota

La creación de un SymbolicLink tipo en Windows requiere elevación como administrador. Sin embargo, Windows 10 (compilación 14972 o posterior) con el modo de desarrollador habilitado ya no requiere la creación de vínculos simbólicos de elevación.

En una Certificate unidad, estos son los valores que puede especificar:

  • Proveedor de certificados
  • Certificado
  • Tienda
  • StoreLocation

Para obtener más información, consulte about_Providers.

Type:String
Aliases:Type
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Name

Especifica el nombre del nuevo elemento. Puede especificar el nombre del nuevo elemento en el valor del parámetro Nombre o Ruta de acceso, y puede especificar la ruta de acceso del nuevo elemento en nombre o valor de ruta de acceso . Los nombres de elementos pasados mediante el parámetro Name se crean en relación con el valor del parámetro Path .

Type:String
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-Path

Especifica la ruta de acceso de la ubicación del nuevo elemento. El valor predeterminado es la ubicación actual cuando se omite Path . Puede especificar el nombre del nuevo elemento en Nombre o incluirlo en Ruta de acceso. Los nombres de elementos pasados mediante el parámetro Name se crean en relación con el valor del parámetro Path .

Para este cmdlet, el parámetro Path funciona como el parámetro LiteralPath de otros cmdlets. Los caracteres comodín no se interpretan. Todos los caracteres se pasan al proveedor de la ubicación. Es posible que el proveedor no admita todos los caracteres. Por ejemplo, no puede crear un nombre de archivo que contenga un carácter asterisco (*).

Type:String[]
Position:0
Default value:Current location
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Value

Especifica el valor del nuevo elemento. También puede canalizar un valor a New-Item.

Type:Object
Aliases:Target
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Muestra lo que sucedería si se ejecutara el cmdlet. El cmdlet no se ejecuta.

Type:SwitchParameter
Aliases:wi
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Entradas

Object

Puede canalizar un valor para el nuevo elemento a este cmdlet.

Salidas

Object

Este cmdlet devuelve el elemento que crea.

Notas

New-Item está diseñado para trabajar con los datos expuestos por cualquier proveedor. Para enumerar los proveedores disponibles en la sesión, escriba Get-PsProvider. Para obtener más información, consulte about_Providers.