Delen via


Set-Content

Hiermee schrijft u nieuwe inhoud of vervangt u bestaande inhoud in een bestand.

Syntaxis

Path (Default) - FileSystem provider

Set-Content
    [-Path] <string[]>
    [-Value] <Object[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-NoNewline]
    [-Encoding <Encoding>]
    [-AsByteStream]
    [-Stream <string>]
    [<CommonParameters>]

LiteralPath - FileSystem provider

Set-Content
    [-Value] <Object[]>
    -LiteralPath <string[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [-NoNewline]
    [-Encoding <Encoding>]
    [-AsByteStream]
    [-Stream <string>]
    [<CommonParameters>]

Path (Default) - All providers

Set-Content
    [-Path] <string[]>
    [-Value] <Object[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

LiteralPath - All providers

Set-Content
    [-Value] <Object[]>
    -LiteralPath <string[]>
    [-PassThru]
    [-Filter <string>]
    [-Include <string[]>]
    [-Exclude <string[]>]
    [-Force]
    [-Credential <pscredential>]
    [-WhatIf]
    [-Confirm]
    [<CommonParameters>]

Description

Set-Content is een cmdlet voor het verwerken van tekenreeksen die nieuwe inhoud schrijft of de inhoud in een bestand vervangt. Set-Content vervangt de bestaande inhoud en verschilt van de Add-Content cmdlet die inhoud toevoegt aan een bestand. Als u inhoud naar Set-Content wilt verzenden, kunt u de parameter Waarde op de opdrachtregel gebruiken of inhoud verzenden via de pijplijn.

Zie New-Itemals u bestanden of mappen wilt maken voor de volgende voorbeelden.

Voorbeelden

Voorbeeld 1: De inhoud van meerdere bestanden in een map vervangen

In dit voorbeeld wordt de inhoud voor meerdere bestanden in de huidige map vervangen.

Get-ChildItem -Path .\Test*.txt
Test1.txt
Test2.txt
Test3.txt
Set-Content -Path .\Test*.txt -Value 'Hello, World'
Get-Content -Path .\Test*.txt
Hello, World
Hello, World
Hello, World

De cmdlet Get-ChildItem gebruikt de parameter Path om .txt bestanden weer te geven die beginnen met Test* in de huidige map. De cmdlet Set-Content gebruikt de parameter Path om de Test*.txt-bestanden op te geven. De parameter Value bevat de tekenreeks Hello, World die de bestaande inhoud in elk bestand vervangt. De cmdlet Get-Content gebruikt de parameter Path om de Test*.txt bestanden op te geven en de inhoud van elk bestand weer te geven in de PowerShell-console.

Voorbeeld 2: Een nieuw bestand maken en inhoud schrijven

In dit voorbeeld wordt een nieuw bestand gemaakt en wordt de huidige datum en tijd naar het bestand geschreven.

Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08

Set-Content gebruikt de parameters Path en Value om een nieuw bestand met de naam DateTime.txt te maken in de huidige map. De parameter waarde gebruikt Get-Date om de huidige datum en tijd op te halen. Set-Content schrijft het DateTime--object als een tekenreeks naar het bestand. De cmdlet Get-Content gebruikt de parameter Path om de inhoud van DateTime.txt weer te geven in de PowerShell-console.

Voorbeeld 3: Tekst in een bestand vervangen

Met deze opdracht worden alle exemplaren van word in een bestaand bestand vervangen.

Get-Content -Path .\Notice.txt
Warning
Replace Warning with a new word.
The word Warning was replaced.
(Get-Content -Path .\Notice.txt) |
    ForEach-Object {$_ -replace 'Warning', 'Caution'} |
        Set-Content -Path .\Notice.txt
Get-Content -Path .\Notice.txt
Caution
Replace Caution with a new word.
The word Caution was replaced.

De cmdlet Get-Content gebruikt de parameter Path om het Notice.txt-bestand in de huidige map op te geven. De Get-Content opdracht wordt verpakt met haakjes, zodat de opdracht wordt voltooid voordat de pijplijn wordt verzonden.

De inhoud van het Notice.txt-bestand wordt naar de ForEach-Object-cmdlet verzonden. ForEach-Object gebruikt de automatische variabele $_ en vervangt elk exemplaar van Waarschuwing door Waarschuwing. De objecten worden via de pijplijn naar de Set-Content-cmdlet verzonden. Set-Content gebruikt de parameter Path om het Notice.txt-bestand op te geven en de bijgewerkte inhoud naar het bestand te schrijven.

In de laatste Get-Content cmdlet wordt de bijgewerkte bestandsinhoud weergegeven in de PowerShell-console.

Voorbeeld 4: Filters gebruiken met Set-Content

U kunt een filter opgeven voor de Set-Content cmdlet. Wanneer u filters gebruikt om de parameter Pad te kwalificeren, moet u een sterretje aan het einde (*) opnemen om de inhoud van het pad aan te geven.

Met de volgende opdracht stelt u alle inhoud *.txt bestanden in de C:\Temp map in op de Waarde leeg.

Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"

Parameters

-AsByteStream

Dit is een dynamische parameter die beschikbaar wordt gesteld door de FileSystem provider. Zie about_FileSystem_Providervoor meer informatie.

Hiermee geeft u op dat de inhoud moet worden geschreven als een stroom van bytes. Deze parameter is geïntroduceerd in PowerShell 6.0.

Er treedt een waarschuwing op wanneer u de parameter AsByteStream gebruikt met de parameter encoding. De parameter AsByteStream negeert alle coderingen en de uitvoer wordt geschreven als een stroom bytes.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Confirm

Voordat u de cmdlet uitvoert, vraagt het systeem om bevestiging.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Cf

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Credential

Opmerking

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-.

Parametereigenschappen

Type:PSCredential
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Encoding

Dit is een dynamische parameter die beschikbaar wordt gesteld door de FileSystem provider. Zie about_FileSystem_Providervoor meer informatie.

Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is utf8NoBOM.

Encoding is een dynamische parameter die de Bestandssysteemprovider toevoegt aan Set-Content. Deze parameter werkt alleen in bestandsysteemschijven.

De acceptabele waarden voor deze parameter zijn als volgt:

  • ascii: maakt gebruik van de codering voor de ASCII-tekenset (7-bits).
  • ansi: gebruikt de codering voor de ANSI-codepagina van de huidige cultuur. Deze optie is toegevoegd in PowerShell 7.4.
  • bigendianunicode: Codeert in UTF-16-indeling met behulp van de bytevolgorde big-endian.
  • bigendianutf32: Codeert in UTF-32-indeling met behulp van de bytevolgorde big-endian.
  • oem: maakt gebruik van de standaardcodering voor MS-DOS- en consoleprogramma's.
  • unicode: Encodeert in UTF-16-indeling met de little-endian-bytevolgorde.
  • utf7: Codeert in UTF-7-formaat.
  • utf8: Codeert in de UTF-8-indeling.
  • utf8BOM: Codeert in UTF-8-formaat met Byte Order Mark (BOM)
  • utf8NoBOM: Codeert in UTF-8-indeling zonder Byte Order Mark (BOM)
  • utf32: Codeert in UTF-32-indeling.

Vanaf PowerShell 6.2 staat de parameter Coderings- ook numerieke id's toe van geregistreerde codepagina's (zoals -Encoding 1251) of tekenreeksnamen van geregistreerde codepagina's (zoals -Encoding "windows-1251"). Zie de .NET-documentatie voor Encoding.CodePagevoor meer informatie.

Vanaf PowerShell 7.4 kunt u de Ansi waarde voor de -coderingsparameter gebruiken om de numerieke id voor de ANSI-codepagina van de huidige cultuur door te geven zonder deze handmatig op te geven.

Opmerking

UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt een waarschuwing geschreven als u utf7 opgeeft voor de parameter codering.

Parametereigenschappen

Type:Encoding
Default value:utf8NoBOM
Geaccepteerde waarden:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Exclude

Hiermee specificeert u, als een tekenreeks, één of meerdere items die door deze cmdlet worden uitgesloten van de bewerking. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals *.txt. Jokertekens zijn toegestaan. De parameter Uitsluiten is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*, waarbij het jokerteken de inhoud van de C:\Windows map aangeeft.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Filter

Hiermee geeft u een filter op om de parameter Path te kwalificeren. De FileSystem-provider is de enige geïnstalleerde PowerShell-provider die het gebruik van filters ondersteunt. U kunt de syntaxis voor de FileSystem filtertaal vinden in about_Wildcards. Filters zijn efficiënter dan andere parameters, omdat de provider deze toepast wanneer de cmdlet de objecten ophaalt in plaats van PowerShell de objecten te filteren nadat ze zijn opgehaald.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Force

Dwingt de cmdlet om de inhoud van een bestand in te stellen, zelfs als het bestand het kenmerk Alleen-lezen heeft. Implementatie varieert van provider tot provider. Zie about_Providersvoor meer informatie. De parameter Forceren overschrijft geen beveiligingsbeperkingen.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Include

Hiermee specificeert u, in de vorm van een tekenreeksarray, een item of items die deze cmdlet bij de bewerking betrekt. De waarde van deze parameter komt in aanmerking voor de parameter Path. Voer een padelement of patroon in, zoals "*.txt". Jokertekens zijn toegestaan. De parameter Opnemen is alleen van kracht wanneer de opdracht de inhoud van een item bevat, zoals C:\Windows\*, waarbij het jokerteken de inhoud van de C:\Windows map aangeeft.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-LiteralPath

Specificeert een pad naar een of meer locaties. De waarde van LiteralPath- wordt exact gebruikt zoals deze is getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, zet het dan tussen enkele aanhalingstekens. Enkele aanhalingstekens zorgen ervoor dat PowerShell geen tekens als escapesequenties interpreteert.

Zie about_Quoting_Rulesvoor meer informatie.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:PSPath, LP

Parametersets

LiteralPath
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-NoNewline

Dit is een dynamische parameter die beschikbaar wordt gesteld door de FileSystem provider. Zie about_FileSystem_Providervoor meer informatie.

De tekenreeksweergaven van de invoerobjecten worden samengevoegd om de uitvoer te vormen. Er worden geen spaties of nieuwe regels ingevoegd tussen de uitvoertekenreeksen. Er wordt geen nieuwe regel toegevoegd na de laatste uitvoertekenreeks.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-PassThru

Retourneert een object dat de inhoud vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.

Parametereigenschappen

Type:SwitchParameter
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Path

Hiermee geeft u het pad op van het item dat de inhoud ontvangt. Jokertekens zijn toegestaan.

Parametereigenschappen

Type:

String[]

Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

Path
Position:0
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-Stream

Dit is een dynamische parameter die beschikbaar wordt gesteld door de FileSystem provider. Deze parameter is alleen beschikbaar in Windows. Zie about_FileSystem_Providervoor meer informatie.

Hiermee geeft u een alternatieve gegevensstroom voor inhoud op. Als de stream niet bestaat, maakt deze cmdlet deze. Jokertekens worden niet ondersteund.

Stream is een dynamische parameter die de FileSystem-provider toevoegt aan Set-Content. Deze parameter werkt alleen in bestandsysteemschijven.

U kunt de cmdlet Set-Content gebruiken om de inhoud van een alternatieve gegevensstroom te maken of bij te werken, zoals Zone.Identifier. We raden dit echter niet aan als een manier om beveiligingscontroles te voorkomen die bestanden blokkeren die van internet worden gedownload. Als u controleert of een gedownload bestand veilig is, gebruikt u de cmdlet Unblock-File.

Deze parameter is geïntroduceerd in PowerShell 3.0. Vanaf PowerShell 7.2 kan Set-Content de inhoud van alternatieve gegevensstromen uit mappen en bestanden instellen.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Value

Hiermee geeft u de nieuwe inhoud voor het item.

Parametereigenschappen

Type:

Object[]

Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:1
Verplicht:True
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-WhatIf

Toont wat er zou gebeuren wanneer de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False
Aliassen:Wi

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

Object

U kunt een object met de nieuwe waarde voor het item doorsluisen naar deze cmdlet.

Uitvoerwaarden

None

Deze cmdlet retourneert standaard geen uitvoer.

String

Wanneer u de parameter PassThru gebruikt, retourneert deze cmdlet een tekenreeks die de inhoud vertegenwoordigt.

Notities

  • Set-Content is ontworpen voor tekenreeksverwerking. Als u niet-tekenreeksobjecten doorsluist naar Set-Content, wordt het object geconverteerd naar een tekenreeks voordat u het schrijft. Gebruik Out-Fileom objecten naar bestanden te schrijven.
  • De cmdlet Set-Content is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u Get-PSProvider. Zie about_Providersvoor meer informatie.