Share via


New-Item

Hiermee maakt u een nieuw item.

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

De New-Item cmdlet maakt een nieuw item en stelt de waarde ervan in. De typen items die kunnen worden gemaakt, zijn afhankelijk van de locatie van het item. In het bestandssysteem New-Item worden bijvoorbeeld bestanden en mappen gemaakt. In het register New-Item worden registersleutels en -vermeldingen gemaakt.

New-Item kan ook de waarde instellen van de items die worden gemaakt. Wanneer er bijvoorbeeld een nieuw bestand wordt gemaakt, New-Item kan initiële inhoud aan het bestand worden toegevoegd.

Voorbeelden

Voorbeeld 1: een bestand Creatie in de huidige map

Met deze opdracht maakt u een tekstbestand met de naam 'testfile1.txt' in de huidige map. De punt ('.') in de waarde van de parameter Path geeft de huidige map aan. De tekst die volgt op de waardeparameter , wordt als inhoud toegevoegd aan het bestand.

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

Voorbeeld 2: een map Creatie

Met deze opdracht maakt u een map met de naam 'Logfiles' in het C: station. De parameter ItemType geeft aan dat het nieuwe item een map is, geen bestand of ander bestandssysteemobject.

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

Voorbeeld 3: een profiel Creatie

Met deze opdracht maakt u een PowerShell-profiel in het pad dat is opgegeven door de $profile variabele.

U kunt profielen gebruiken om PowerShell aan te passen. $profile is een automatische (ingebouwde) variabele waarmee het pad en de bestandsnaam van het profiel 'CurrentUser/CurrentHost' worden opgeslagen. Standaard bestaat het profiel niet, ook al slaat PowerShell er een pad en bestandsnaam voor op.

In deze opdracht vertegenwoordigt de $profile variabele het pad van het bestand. Parameter ItemType geeft aan dat de opdracht een bestand maakt. Met de parameter Force kunt u een bestand maken in het profielpad, zelfs als de mappen in het pad niet bestaan.

Nadat u een profiel hebt gemaakt, kunt u aliassen, functies en scripts invoeren in het profiel om uw shell aan te passen.

Zie about_Automatic_Variables en about_Profiles voor meer informatie.

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

Voorbeeld 4: Creatie een map in een andere map

In dit voorbeeld wordt een nieuwe map Scripts gemaakt in de map C:\PS-Test.

De naam van het nieuwe mapitem, 'Scripts', is opgenomen in de waarde van path parameter, in plaats van te worden opgegeven in de waarde van Naam. Zoals aangegeven door de syntaxis, is een van beide opdrachtformulieren geldig.

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

Voorbeeld 5: meerdere bestanden Creatie

In dit voorbeeld worden bestanden in twee verschillende mappen gemaakt. Omdat Pad meerdere tekenreeksen gebruikt, kunt u dit gebruiken om meerdere items te maken.

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

Voorbeeld 6: Jokertekens gebruiken om bestanden in meerdere mappen te maken

De New-Item cmdlet ondersteunt jokertekens in de path-parameter . Met de volgende opdracht maakt u een temp.txt bestand in alle mappen die zijn opgegeven door de jokertekens in de path parameter .

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

De Get-ChildItem cmdlet toont drie mappen onder de C:\Temp map. Met behulp van jokertekens maakt de New-Item cmdlet een temp.txt bestand in alle mappen in de huidige map. De New-Item cmdlet voert de items uit die u hebt gemaakt. Deze wordt doorgesluisd naar Select-Object om de paden van de zojuist gemaakte bestanden te controleren.

Voorbeeld 7: Creatie een symbolische koppeling naar een bestand of map

In dit voorbeeld wordt een symbolische koppeling gemaakt naar het Notice.txt-bestand in de huidige map.

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

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

In dit voorbeeld is Doel een alias voor de waardeparameter . Het doel van de symbolische koppeling kan een relatief pad zijn. Vóór PowerShell v6.2 moet het doel een volledig gekwalificeerd pad zijn.

Vanaf PowerShell 7.1 kunt u nu een SymbolicLink maken naar een map in Windows met behulp van een relatief pad.

Voorbeeld 8: gebruik de parameter -Force om te proberen mappen opnieuw te maken

In dit voorbeeld wordt een map gemaakt met daarin een bestand. Vervolgens probeert u dezelfde map te maken met behulp van -Force. De map wordt niet overschreven, maar retourneert gewoon het bestaande mapobject met het bestand dat is gemaakt.

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

Voorbeeld 9: de parameter -Force gebruiken om bestaande bestanden te overschrijven

In dit voorbeeld wordt een bestand met een waarde gemaakt en wordt het bestand vervolgens opnieuw gemaakt met behulp van -Force. Hierdoor wordt het bestaande bestand overschreven en gaat de inhoud ervan verloren, zoals u kunt zien aan de eigenschap 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

Notitie

Wanneer u New-Item met de -Force schakeloptie registersleutels maakt, werkt de opdracht hetzelfde als bij het overschrijven van een bestand. Als de registersleutel al bestaat, worden de sleutel en alle eigenschappen en waarden overschreven met een lege registersleutel.

Parameters

-Confirm

Hiermee wordt u gevraagd om bevestiging voordat u de cmdlet uitvoert.

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

-Credential

Notitie

Deze parameter wordt niet ondersteund door providers die zijn geïnstalleerd met PowerShell. Als u een andere gebruiker wilt imiteren of uw referenties wilt verhogen bij het uitvoeren van deze cmdlet, gebruikt u Invoke-Command.

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

-Force

Hiermee dwingt u deze cmdlet om een item te maken dat over een bestaand alleen-lezen item schrijft. De implementatie verschilt van provider tot provider. Zelfs als u de parameter Force gebruikt, kan de cmdlet de beveiligingsbeperkingen niet negeren.

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

-ItemType

Hiermee geeft u het door de provider opgegeven type van het nieuwe item. De beschikbare waarden van deze parameter zijn afhankelijk van de huidige provider die u gebruikt.

Als uw locatie zich in een FileSystem station bevindt, zijn de volgende waarden toegestaan:

  • File
  • Directory
  • SymbolicLink
  • Verbinding
  • Hardlink

Notitie

Voor het maken van een SymbolicLink type in Windows is uitbreiding als beheerder vereist. Voor Windows 10 (build 14972 of hoger) waarvoor de ontwikkelaarsmodus is ingeschakeld, is echter geen uitbreiding meer vereist voor het maken van symbolische koppelingen.

In een Certificate station zijn dit de waarden die u kunt opgeven:

  • Certificaatprovider
  • Certificaat
  • Opslaan
  • StoreLocation

Zie about_Providers voor meer informatie.

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

-Name

Hiermee geeft u de naam van het nieuwe item. U kunt de naam van het nieuwe item opgeven in de parameterwaarde Naam of Pad en u kunt het pad van het nieuwe item opgeven in naam of padwaarde . Itemsnamen die worden doorgegeven met de parameter Name , worden gemaakt ten opzichte van de waarde van de path-parameter .

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

-Path

Hiermee geeft u het pad van de locatie van het nieuwe item. De standaardwaarde is de huidige locatie wanneer Pad wordt weggelaten. U kunt de naam van het nieuwe item opgeven in Naam of opnemen in Pad. Itemsnamen die worden doorgegeven met de parameter Name , worden gemaakt ten opzichte van de waarde van de path-parameter .

Voor deze cmdlet werkt de path-parameter net als de LiteralPath-parameter van andere cmdlets. Jokertekens worden niet geïnterpreteerd. Alle tekens worden doorgegeven aan de provider van de locatie. De provider ondersteunt mogelijk niet alle tekens. U kunt bijvoorbeeld geen bestandsnaam maken die een sterretje (*) bevat.

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

-Value

Hiermee geeft u de waarde van het nieuwe item op. U kunt ook een waarde doorsluisen naar New-Item.

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

-WhatIf

Hiermee wordt weergegeven wat er zou gebeuren als u de cmdlet uitvoert. De cmdlet wordt niet uitgevoerd.

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

Invoerwaarden

Object

U kunt een waarde voor het nieuwe item doorsnijden naar deze cmdlet.

Uitvoerwaarden

Object

Deze cmdlet retourneert het item dat wordt gemaakt.

Notities

New-Item is ontworpen om te werken met de gegevens die door een provider worden weergegeven. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u Get-PsProvider. Zie about_Providers voor meer informatie.