Set-Content
Hiermee schrijft u nieuwe inhoud of vervangt u bestaande inhoud in een bestand.
Syntaxis
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-NoNewline]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-Stream <string>]
[<CommonParameters>]
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[-UseTransaction]
[-NoNewline]
[-Encoding <FileSystemCmdletProviderEncoding>]
[-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 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 (*
) 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
-Confirm
U wordt gevraagd om bevestiging voordat u de cmdlet uitvoert.
Type: | SwitchParameter |
Aliassen: | cf |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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: | None |
Vereist: | False |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-Encoding
Hiermee geeft u het type codering voor het doelbestand. De standaardwaarde is Default.
Encoding is een dynamische parameter die de Bestandssysteemprovider toevoegt aan Set-Content
. Deze parameter werkt alleen in bestandssysteemstations.
De acceptabele waarden voor deze parameter zijn als volgt:
- ASCII- maakt gebruik van ASCII-tekenset (7-bits).
- BigEndianUnicode Maakt gebruik van UTF-16 met de bytevolgorde big-endian.
- BigEndianUTF32 Maakt gebruik van UTF-32 met de bytevolgorde big-endian.
- Byte Codeert een reeks tekens in een reeks bytes.
- standaard maakt gebruik van de codering die overeenkomt met de actieve codepagina van het systeem (meestal ANSI).
- OEM- maakt gebruik van de codering die overeenkomt met de huidige OEM-codepagina van het systeem.
- tekenreeks hetzelfde als Unicode-.
- Unicode- maakt gebruik van UTF-16 met de bytevolgorde little endian.
- Onbekend Hetzelfde als Unicode-.
- UTF7 maakt gebruik van UTF-7.
- UTF8 Maakt gebruik van UTF-8.
- UTF32 maakt gebruik van UTF-32 met de bytevolgorde little-endian.
Encoding is een dynamische parameter die de Bestandssysteemprovider toevoegt aan Set-Content
. Deze parameter werkt alleen in bestandssysteemstations.
Type: | FileSystemCmdletProviderEncoding |
Geaccepteerde waarden: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | Default |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-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 vindt de syntaxis voor de Bestandssysteem filtertaal 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.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-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.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Include
Hiermee geeft u, als tekenreeksmatrix, een item of items op die deze cmdlet in de bewerking bevat. 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | True |
-LiteralPath
Hiermee geeft u 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 escapetekens bevat, plaatst u het tussen enkele aanhalingstekens. Enkele aanhalingstekens geven PowerShell aan dat er geen tekens als escapereeksen moeten worden geïnterpreteerd.
Zie about_Quoting_Rulesvoor meer informatie.
Type: | String[] |
Aliassen: | PSPath |
Position: | Named |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | 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 |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-PassThru
Retourneert een object dat de inhoud vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | 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 |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | True |
-Stream
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 bestandssysteemstations.
U kunt de cmdlet Set-Content
gebruiken om de inhoud van de Zone.Identifier alternatieve gegevensstroom te wijzigen. 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.
Type: | String |
Position: | Named |
Default value: | None |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-UseTransaction
Bevat de opdracht in de actieve transactie. Deze parameter is alleen geldig wanneer een transactie wordt uitgevoerd. Zie about_Transactionsvoor meer informatie.
Type: | SwitchParameter |
Aliassen: | usetx |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
-Value
Hiermee geeft u de nieuwe inhoud voor het item.
Type: | Object[] |
Position: | 1 |
Default value: | None |
Vereist: | True |
Pijplijninvoer accepteren: | True |
Jokertekens accepteren: | False |
-WhatIf
Toont wat er zou gebeuren als de cmdlet wordt uitgevoerd. De cmdlet wordt niet uitgevoerd.
Type: | SwitchParameter |
Aliassen: | wi |
Position: | Named |
Default value: | False |
Vereist: | False |
Pijplijninvoer accepteren: | False |
Jokertekens accepteren: | False |
Invoerwaarden
U kunt een object met de nieuwe waarde voor het item doorsluisen naar Set-Content
.
Uitvoerwaarden
None or System.String
Wanneer u de parameter PassThru gebruikt, genereert Set-Content
een System.String-object dat de inhoud vertegenwoordigt. Anders genereert deze cmdlet geen uitvoer.
Notities
- U kunt ook verwijzen naar
Set-Content
door de ingebouwde alias,sc
. Zie about_Aliasesvoor 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. GebruikOut-File
om 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 uGet-PsProvider
. Zie about_Providersvoor meer informatie.