Set-Content
Hiermee schrijft u nieuwe inhoud of vervangt u bestaande inhoud in een bestand.
Syntax
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>]
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>]
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 waarmee inhoud aan een bestand wordt toegevoegd. Als u inhoud naar Set-Content
wilt verzenden, kunt u de parameter Value op de opdrachtregel gebruiken of inhoud verzenden via de pijplijn.
Als u bestanden of mappen wilt maken voor de volgende voorbeelden, raadpleegt u New-Item.
Voorbeelden
Voorbeeld 1: De inhoud van meerdere bestanden in een map vervangen
In dit voorbeeld wordt de inhoud van 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 Get-ChildItem
cmdlet gebruikt de parameter Path om .txt bestanden weer te geven die beginnen met Test*
in de huidige map. De Set-Content
cmdlet gebruikt de parameter Path om de Test*.txt
bestanden op te geven. De waardeparameter biedt de tekenreeks Hello Wereld die de bestaande inhoud in elk bestand vervangt. De Get-Content
cmdlet gebruikt de parameter Path om de Test*.txt
bestanden op te geven en geeft de inhoud van elk bestand weer in de PowerShell-console.
Voorbeeld 2: een nieuw bestand Creatie en inhoud schrijven
In dit voorbeeld wordt een nieuw bestand gemaakt en worden 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 Pad en Waarde om een nieuw bestand met de naam DateTime.txt te maken in de huidige map. De parameter Value 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 Get-Content
cmdlet 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 woorden 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 Get-Content
cmdlet 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 via de pijplijn 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 schrijft de bijgewerkte inhoud naar het bestand.
De laatste Get-Content
cmdlet geeft de bijgewerkte bestandsinhoud weer in de PowerShell-console.
Voorbeeld 4: Filters gebruiken met Set-Content
U kunt een filter voor de Set-Content
cmdlet opgeven. Wanneer u filters gebruikt om de path-parameter te kwalificeren, moet u een afsluitend sterretje (*
) opnemen om de inhoud van het pad aan te geven.
Met de volgende opdracht stelt u de inhoud van alle *.txt
bestanden in de C:\Temp
map in op de waarde leeg.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parameters
-AsByteStream
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 elke codering en de uitvoer wordt geschreven als een stroom van bytes.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-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. Gebruik Invoke-Command om een andere gebruiker te imiteren of uw referenties te verhogen bij het uitvoeren van deze cmdlet.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Encoding
Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is utf8NoBOM
.
Encoding is een dynamische parameter die door de bestandssysteemprovider wordt toegevoegd aan Set-Content
. Deze parameter werkt alleen in bestandssysteemstations.
De acceptabele waarden voor deze parameter zijn als volgt:
ascii
: Gebruikt de codering voor de ASCII-tekenset (7-bits).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
: Gebruikt de standaardcodering voor MS-DOS en consoleprogramma's.unicode
: Codeert in UTF-16-indeling met behulp van de bytevolgorde little-endian.utf7
: Codeert in UTF-7-indeling.utf8
: Codeert in UTF-8-indeling.utf8BOM
: Codeert in UTF-8-indeling 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 coderingsparameter 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.CodePage voor meer informatie.
Notitie
UTF-7* wordt niet meer aanbevolen om te gebruiken. Vanaf PowerShell 7.1 wordt er een waarschuwing geschreven als u opgeeft utf7
voor de coderingsparameter .
Type: | Encoding |
Accepted values: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Exclude
Hiermee geeft u, als een tekenreeksmatrix, een item of items op die door deze cmdlet worden uitgesloten in de bewerking. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of -patroon in, zoals *.txt
. Jokertekens zijn toegestaan. De parameter Exclude 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Hiermee geeft u een filter om de path parameter te kwalificeren. De Bestandssysteemprovider is de enige geïnstalleerde PowerShell-provider die het gebruik van filters ondersteunt. U vindt de syntaxis voor de filtertaal Bestandssysteem in about_Wildcards. Filters zijn efficiënter dan andere parameters, omdat de provider ze toepast wanneer de cmdlet de objecten ophaalt in plaats van dat PowerShell de objecten nadat ze zijn opgehaald, moet filteren.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Hiermee wordt de cmdlet gedwongen de inhoud van een bestand in te stellen, zelfs als het bestand het kenmerk Alleen-lezen heeft. De implementatie verschilt per provider. Zie about_Providers voor meer informatie. De parameter Force overschrijft de beveiligingsbeperkingen niet.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Hiermee geeft u, als een tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking opneemt. De waarde van deze parameter komt in aanmerking voor de path-parameter . Voer een padelement of -patroon in, zoals "*.txt"
. Jokertekens zijn toegestaan. De parameter Include 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Hiermee geeft u een pad naar een of meer locaties. De waarde van LiteralPath wordt precies gebruikt zoals deze wordt getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens vertellen PowerShell dat geen tekens als escape-reeksen worden geïnterpreteerd.
Zie about_Quoting_Rules voor meer informatie.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Retourneert een object dat de inhoud vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Hiermee geeft u het pad op van het item dat de inhoud ontvangt. Jokertekens zijn toegestaan.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Stream
Notitie
Deze parameter is alleen beschikbaar in Windows.
Hiermee geeft u een alternatieve gegevensstroom voor inhoud op. Als de stroom niet bestaat, wordt deze met deze cmdlet gemaakt. Jokertekens worden niet ondersteund.
Stream is een dynamische parameter die door de bestandssysteemprovider wordt toegevoegd aan Set-Content
. Deze parameter werkt alleen in bestandssysteemstations.
U kunt de Set-Content
cmdlet 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 elimineren die bestanden blokkeren die van internet worden gedownload. Als u controleert of een gedownload bestand veilig is, gebruikt u de Unblock-File
cmdlet.
Deze parameter is geïntroduceerd in PowerShell 3.0.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Hiermee geeft u de nieuwe inhoud voor het item.
Type: | Object[] |
Position: | 1 |
Default value: | None |
Required: | True |
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
U kunt een object met de nieuwe waarde voor het item doorspezen naar Set-Content
.
Uitvoerwaarden
None or System.String
Wanneer u de parameter PassThru gebruikt, Set-Content
wordt een System.String-object gegenereerd dat de inhoud vertegenwoordigt. Anders genereert deze cmdlet geen uitvoer.
Notities
- U kunt ook verwijzen naar door de
Set-Content
ingebouwde alias,sc
. Zie about_Aliases voor meer informatie. Set-Content
is ontworpen voor tekenreeksverwerking. Als u niet-tekenreeksobjecten doorsluist naarSet-Content
, wordt het object geconverteerd naar een tekenreeks voordat u het schrijft. Als u objecten naar bestanden wilt schrijven, gebruikt uOut-File
.- De
Set-Content
cmdlet 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 uGet-PsProvider
. Zie about_Providers voor meer informatie.