Set-Content
Skriver nytt innehåll eller ersätter befintligt innehåll i en fil.
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>]
Set-Content
[-Path] <string[]>
[-Value] <Object[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Set-Content
[-Value] <Object[]>
-LiteralPath <string[]>
[-PassThru]
[-Filter <string>]
[-Include <string[]>]
[-Exclude <string[]>]
[-Force]
[-Credential <pscredential>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Description
Set-Content
är en cmdlet för strängbearbetning som skriver nytt innehåll eller ersätter innehållet i en fil. Set-Content
ersätter det befintliga innehållet och skiljer sig från cmdleten Add-Content
som lägger till innehåll i en fil. Om du vill skicka innehåll till Set-Content
kan du använda parametern Value på kommandoraden eller skicka innehåll via pipelinen.
Om du behöver skapa filer eller kataloger för följande exempel kan du läsa Nytt objekt.
Exempel
Exempel 1: Ersätt innehållet i flera filer i en katalog
Det här exemplet ersätter innehållet för flera filer i den aktuella katalogen.
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
Cmdleten Get-ChildItem
använder parametern Path för att lista .txt filer som börjar med Test*
i den aktuella katalogen. Cmdleten Set-Content
använder parametern Path för att ange Test*.txt
filerna. Parametern Value innehåller textsträngen Hello, World som ersätter det befintliga innehållet i varje fil. Cmdleten Get-Content
använder parametern Path för att ange Test*.txt
filerna och visar varje fils innehåll i PowerShell-konsolen.
Exempel 2: Skapa en ny fil och skriva innehåll
Det här exemplet skapar en ny fil och skriver aktuellt datum och tid till filen.
Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08
Set-Content
använder parametrarna Sökväg och Värde för att skapa en ny fil med namnet DateTime.txt i den aktuella katalogen. Parametern Value använder Get-Date
för att hämta aktuellt datum och tid.
Set-Content
skriver DateTime-objektet till filen som en sträng. Cmdleten Get-Content
använder parametern Path för att visa innehållet i DateTime.txt i PowerShell-konsolen.
Exempel 3: Ersätt text i en fil
Det här kommandot ersätter alla instanser av ord i en befintlig fil.
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.
Cmdleten Get-Content
använder parametern Path för att ange denNotice.txt filen i den aktuella katalogen. Kommandot Get-Content
omsluts av parenteser så att kommandot slutförs innan det skickas nedåt i pipelinen.
Innehållet i Notice.txt-filen skickas ned i pipelinen till cmdleten ForEach-Object
.
ForEach-Object
använder den automatiska variabeln $_
och ersätter varje förekomst av Varning med Varning. Objekten skickas nedåt i pipelinen till cmdleten Set-Content
. Set-Content
använder parametern Path för att ange Notice.txt-filen och skriver det uppdaterade innehållet till filen.
Den sista Get-Content
cmdleten visar det uppdaterade filinnehållet i PowerShell-konsolen.
Exempel 4: Använd filter med Set-Content
Du kan ange ett filter för cmdleten Set-Content
. När du använder filter för att kvalificera parametern Path måste du inkludera en avslutande asterisk (*
) för att ange innehållet i sökvägen.
Följande kommando anger innehållet för alla *.txt
filer i C:\Temp
katalogen till Värdet tomt.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parametrar
-AsByteStream
Det här är en dynamisk parameter som görs tillgänglig av FileSystem-providern . Mer information finns i about_FileSystem_Provider.
Anger att innehållet ska skrivas som en ström med byte. Den här parametern introducerades i PowerShell 6.0.
En varning visas när du använder parametern AsByteStream med parametern Encoding . Parametern AsByteStream ignorerar all kodning och utdata skrivs som en ström med byte.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Confirm
Uppmanar dig att bekräfta innan du kör cmdleten.
Type: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Credential
Anteckning
Den här parametern stöds inte av några providers som är installerade med PowerShell. Om du vill personifiera en annan användare eller höja dina autentiseringsuppgifter när du kör den här cmdleten använder du Invoke-Command.
Type: | PSCredential |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-Encoding
Det här är en dynamisk parameter som görs tillgänglig av FileSystem-providern . Mer information finns i about_FileSystem_Provider.
Anger typ av kodning för målfilen. Standardvärdet är utf8NoBOM
.
Kodning är en dynamisk parameter som FileSystem-providern lägger till i Set-Content
. Den här parametern fungerar bara på filsystemenheter.
Godkända värden för den här parametern är följande:
ascii
: Använder kodningen för ASCII-teckenuppsättningen (7-bitars).bigendianunicode
: Kodar i UTF-16-format med hjälp av den stora byteordningen.bigendianutf32
: Kodar i UTF-32-format med hjälp av den stora byteordningen.oem
: Använder standardkodning för MS-DOS och konsolprogram.unicode
: Kodar i UTF-16-format med den little-endianska byteordningen.utf7
: Kodar i UTF-7-format.utf8
: Kodar i UTF-8-format.utf8BOM
: Kodar i UTF-8-format med BOM (Byte Order Mark)utf8NoBOM
: Kodar i UTF-8-format utan bom (Byte Order Mark)utf32
: Kodar i UTF-32-format.
Från och med PowerShell 6.2 tillåter kodningsparametern även numeriska ID:er för registrerade kodsidor (till exempel -Encoding 1251
) eller strängnamn för registrerade kodsidor (till exempel -Encoding "windows-1251"
). Mer information finns i .NET-dokumentationen för Encoding.CodePage.
Anteckning
UTF-7* rekommenderas inte längre att använda. Från och med PowerShell 7.1 skrivs en varning om du anger utf7
för kodningsparametern .
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
Anger, som en strängmatris, ett objekt eller objekt som denna cmdlet exkluderar i åtgärden. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel *.txt
. Jokertecken tillåts. Parametern Exkludera gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*
, där jokertecknet anger innehållet i C:\Windows
katalogen.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Filter
Anger ett filter för att kvalificera parametern Path . FileSystem-providern är den enda installerade PowerShell-providern som stöder användning av filter. Du hittar syntaxen för filterspråket FileSystem i about_Wildcards. Filter är mer effektiva än andra parametrar, eftersom providern tillämpar dem när cmdleten hämtar objekten i stället för att Låta PowerShell filtrera objekten efter att de har hämtats.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-Force
Tvingar cmdleten att ange innehållet i en fil, även om filen är skrivskyddad. Implementeringen varierar från leverantör till leverantör. Mer information finns i about_Providers. Parametern Force åsidosätter inte säkerhetsbegränsningar.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Include
Anger, som en strängmatris, ett objekt eller objekt som denna cmdlet innehåller i åtgärden. Värdet för den här parametern kvalificerar parametern Path . Ange ett sökvägselement eller mönster, till exempel "*.txt"
. Jokertecken tillåts. Parametern Include gäller endast när kommandot innehåller innehållet i ett objekt, till exempel C:\Windows\*
, där jokertecknet anger innehållet i C:\Windows
katalogen.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | True |
-LiteralPath
Anger en sökväg till en eller flera platser. Värdet för LiteralPath används exakt som det skrivs. Inga tecken tolkas som jokertecken. Om sökvägen innehåller escape-tecken omger du den inom enkla citattecken. Enkla citattecken säger till PowerShell att inte tolka några tecken som escape-sekvenser.
Mer information finns i about_Quoting_Rules.
Type: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-NoNewline
Det här är en dynamisk parameter som görs tillgänglig av FileSystem-providern . Mer information finns i about_FileSystem_Provider.
Strängrepresentationerna av indataobjekten sammanfogas för att bilda utdata. Inga blanksteg eller nya linjer infogas mellan utdatasträngarna. Ingen ny rad läggs till efter den senaste utdatasträngen.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-PassThru
Returnerar ett objekt som representerar innehållet. Som standard genererar denna cmdlet inga utdata.
Type: | SwitchParameter |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Path
Anger sökvägen till det objekt som tar emot innehållet. Jokertecken tillåts.
Type: | String[] |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | True |
-Stream
Det här är en dynamisk parameter som görs tillgänglig av FileSystem-providern . Den här parametern är endast tillgänglig i Windows. Mer information finns i about_FileSystem_Provider.
Anger en alternativ dataström för innehåll. Om strömmen inte finns skapar den här cmdleten den. Jokertecken stöds inte.
Stream är en dynamisk parameter som FileSystem-providern lägger till i Set-Content
. Den här parametern fungerar bara i filsystemenheter.
Du kan använda cmdleten Set-Content
för att skapa eller uppdatera innehållet i valfri alternativ dataström, till exempel Zone.Identifier
. Vi rekommenderar dock inte detta som ett sätt att eliminera säkerhetskontroller som blockerar filer som laddas ned från Internet. Om du kontrollerar att en nedladdad fil är säker använder du cmdleten Unblock-File
.
Den här parametern introducerades i PowerShell 3.0. Från och med PowerShell 7.2 Set-Content
kan du ange innehållet i alternativa dataströmmar från kataloger och filer.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
Anger det nya innehållet för objektet.
Type: | Object[] |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
-WhatIf
Visar vad som skulle hända om cmdleten kördes. Cmdleten körs inte.
Type: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Indata
Du kan skicka ett objekt som innehåller det nya värdet för objektet till denna cmdlet.
Utdata
None
Som standard returnerar denna cmdlet inga utdata.
När du använder parametern PassThru returnerar den här cmdleten en sträng som representerar innehållet.
Kommentarer
Set-Content
är utformad för strängbearbetning. Om du skickar icke-strängobjekt tillSet-Content
konverteras objektet till en sträng innan det skrivs. Om du vill skriva objekt till filer använder duOut-File
.- Cmdleten
Set-Content
är utformad för att fungera med data som exponeras av alla leverantörer. Om du vill visa en lista över de providrar som är tillgängliga i sessionen skriver duGet-PsProvider
. Mer information finns i about_Providers.