Set-Content

Új tartalmat ír, vagy lecseréli a fájl meglévő tartalmát.

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 egy sztringfeldolgozó parancsmag, amely új tartalmat ír, vagy lecseréli a fájl tartalmát. Set-Content lecseréli a meglévő tartalmat, és eltér attól a Add-Content parancsmagtól, amely tartalmat fűz egy fájlhoz. Ha tartalmat szeretne küldeni, Set-Content használja a parancssor Érték paraméterét, vagy küldjön tartalmat a folyamaton keresztül.

Ha az alábbi példákhoz fájlokat vagy könyvtárakat kell létrehoznia, tekintse meg az Új elem című témakört.

Példák

1. példa: Több fájl tartalmának cseréje egy könyvtárban

Ez a példa az aktuális könyvtár több fájljának tartalmát cseréli le.

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

A Get-ChildItem parancsmag az Elérési út paraméterrel listáz .txt fájlokat, amelyek az aktuális könyvtárban kezdődnek Test* . A Set-Content parancsmag a Path paraméter használatával adja meg a Test*.txt fájlokat. Az Érték paraméter a Hello, World szöveges sztringet adja meg, amely felváltja az egyes fájlok meglévő tartalmát. A Get-Content parancsmag a Path paraméter használatával adja meg a Test*.txt fájlokat, és megjeleníti az egyes fájlok tartalmát a PowerShell-konzolon.

2. példa: Új fájl létrehozása és tartalom írása

Ez a példa létrehoz egy új fájlt, és beírja az aktuális dátumot és időt a fájlba.

Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt

1/30/2019 09:55:08

Set-ContentAz Elérési út és érték paraméterek használatával hozzon létre egy új, DateTime.txt nevű fájlt az aktuális könyvtárban. Az Érték paraméter az aktuális dátum és idő lekérésére használja Get-Date . Set-Content A DateTime objektumot sztringként írja a fájlba. A Get-Content parancsmag a Path paraméter használatával jeleníti meg a DateTime.txt tartalmát a PowerShell-konzolon.

3. példa: Szöveg cseréje fájlban

Ez a parancs lecseréli a word összes példányát egy meglévő fájlban.

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.

A Get-Content parancsmag a Path paraméter használatával adja meg a Notice.txt fájlt az aktuális könyvtárban. A Get-Content parancs zárójelekkel van burkolva, így a parancs befejeződik, mielőtt elküldené a folyamatot.

A Notice.txt fájl tartalmát a rendszer elküldi a folyamatnak a ForEach-Object parancsmagnak. ForEach-Objectaz automatikus változót $_ használja, és a Figyelmeztetés minden előfordulását lecseréli a Figyelem gombra. A rendszer elküldi az objektumokat a folyamatnak a Set-Content parancsmagnak. Set-ContentA Path paraméter használatával adja meg a Notice.txt fájlt, és a frissített tartalmat a fájlba írja.

Az utolsó Get-Content parancsmag megjeleníti a frissített fájltartalmat a PowerShell-konzolon.

4. példa: Szűrők használata set-content használatával

A parancsmaghoz Set-Content szűrőt is megadhat. Ha szűrőkkel minősíti az Elérési út paramétert, egy záró csillagot (*) kell tartalmaznia az elérési út tartalmának jelzéséhez.

Az alábbi parancs a könyvtár összes *.txt fájljának C:\Temp tartalmát üres értékre állítja.

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

Paraméterek

-AsByteStream

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter. További információ: about_FileSystem_Provider.

Megadja, hogy a tartalmat bájtok adatfolyamaként kell-e írni. Ezt a paramétert a PowerShell 6.0-ban vezettük be.

Figyelmeztetés jelenik meg, ha az AsByteStream paramétert a Kódolás paraméterrel használja. Az AsByteStream paraméter figyelmen kívül hagy minden kódolást, és a kimenet bájtfolyamként van megírva.

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

-Confirm

Jóváhagyást kér a parancsmag futtatása előtt.

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

-Credential

Feljegyzés

Ezt a paramétert a PowerShell-lel telepített szolgáltatók nem támogatják. Ha megszemélyesíteni szeretne egy másik felhasználót, vagy a parancsmag futtatásakor emeli a hitelesítő adatait, használja az Invoke-Command parancsot.

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

-Encoding

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter. További információ: about_FileSystem_Provider.

Megadja a célfájl kódolási típusát. Az alapértelmezett érték utf8NoBOM.

A kódolás egy dinamikus paraméter, amelyet a Fájlrendszer-szolgáltató ad hozzá Set-Content. Ez a paraméter csak fájlrendszer-meghajtókon működik.

A paraméter elfogadható értékei a következők:

  • ascii: Az ASCII (7 bites) karakterkészlet kódolását használja.
  • bigendianunicode: UTF-16 formátumban kódolja a big-endian bájtsorrendet.
  • bigendianutf32: UTF-32 formátumban kódolja a big-endian bájtsorrendet.
  • oem: Az MS-DOS és a konzolprogramok alapértelmezett kódolását használja.
  • unicode: UTF-16 formátumban kódolja a kis végű bájtsorrendet.
  • utf7: UTF-7 formátumban kódol.
  • utf8: UTF-8 formátumban kódol.
  • utf8BOM: UTF-8 formátumban kódol byte order mark (BOM)
  • utf8NoBOM: UTF-8 formátumban kódol byte order mark (BOM) nélkül
  • utf32: UTF-32 formátumban kódol.

A PowerShell 6.2-től kezdődően a Kódolás paraméter lehetővé teszi a regisztrált kódlapok (például -Encoding 1251) numerikus azonosítóit vagy a regisztrált kódlapok sztringneveit (például -Encoding "windows-1251"). További információt a Encoding.CodePage .NET-dokumentációjában talál.

Feljegyzés

Az UTF-7* már nem ajánlott. A PowerShell 7.1-ről figyelmeztetést ír, ha utf7 megadja a Kódolás paramétert.

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

Sztringtömbként olyan elemet vagy elemeket határoz meg, amelyeket ez a parancsmag kizár a műveletből. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például *.txt. A helyettesítő karakterek használata engedélyezett. A Kizárás paraméter csak akkor érvényes, ha a parancs egy elem tartalmát tartalmazza, például C:\Windows\*ha a helyettesítő karakter a könyvtár tartalmát C:\Windows adja meg.

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

-Filter

Egy szűrőt ad meg, amely megfelel az Elérési út paraméternek. A Fájlrendszer-szolgáltató az egyetlen telepített PowerShell-szolgáltató, amely támogatja a szűrők használatát. A Fájlrendszer szűrőnyelvének szintaxisa about_Wildcards található. A szűrők hatékonyabbak, mint a többi paraméter, mivel a szolgáltató akkor alkalmazza őket, amikor a parancsmag lekéri az objektumokat, és nem azt, hogy a PowerShell szűrje az objektumokat a lekérés után.

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

-Force

Kényszeríti a parancsmagot egy fájl tartalmának beállítására, még akkor is, ha a fájl írásvédett. A megvalósítás szolgáltatónként eltérő. További információ: about_Providers. A Force paraméter nem bírálja felül a biztonsági korlátozásokat.

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

-Include

Sztringtömbként egy elemet vagy elemet határoz meg, amelyet ez a parancsmag tartalmaz a műveletben. Ennek a paraméternek az értéke az Elérési út paramétert minősíti. Adjon meg egy elérési út elemet vagy mintát, például "*.txt". A helyettesítő karakterek használata engedélyezett. Az Include paraméter csak akkor érvényes, ha a parancs egy elem tartalmát tartalmazza, például C:\Windows\*amikor a helyettesítő karakter a könyvtár tartalmát C:\Windows adja meg.

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

-LiteralPath

Egy vagy több hely elérési útját adja meg. A LiteralPath értékét pontosan a beírt módon használja a rendszer. A rendszer egyetlen karaktert sem értelmez helyettesítő karakterként. Ha az elérési út tartalmaz escape karaktereket, csatolja egy idézőjelek közé. Az idézőjelek azt mondják a PowerShellnek, hogy ne értelmezzen karaktereket feloldósorozatként.

További információ: about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-NoNewline

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter. További információ: about_FileSystem_Provider.

A bemeneti objektumok sztringreprezentációi összefűzve jelennek meg a kimenet létrehozásához. A kimeneti sztringek között nincsenek szóközök vagy új vonalak. Az utolsó kimeneti sztring után nincs új vonal hozzáadva.

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

-PassThru

A tartalmat jelképező objektumot ad vissza. Ez a parancsmag alapértelmezés szerint nem hoz létre kimenetet.

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

-Path

Megadja a tartalmat fogadó elem elérési útját. A helyettesítő karakterek használata engedélyezett.

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

-Stream

Ez a fájlrendszer-szolgáltató által elérhetővé tett dinamikus paraméter. Ez a paraméter csak Windows rendszeren érhető el. További információ: about_FileSystem_Provider.

Alternatív adatfolyamot ad meg a tartalomhoz. Ha a stream nem létezik, ez a parancsmag hozza létre. A helyettesítő karakterek nem támogatottak.

A Stream egy dinamikus paraméter, amelyet a Fájlrendszer-szolgáltató hozzáad Set-Content. Ez a paraméter csak fájlrendszer-meghajtókon működik.

A Set-Content parancsmaggal létrehozhatja vagy frissítheti bármely alternatív adatfolyam tartalmát, például Zone.Identifier. Ezt azonban nem javasoljuk, hogy kiküszöbölje az internetről letöltött fájlokat letiltó biztonsági ellenőrzéseket. Ha ellenőrzi, hogy egy letöltött fájl biztonságos-e, használja a Unblock-File parancsmagot.

Ezt a paramétert a PowerShell 3.0-ban vezettük be. A PowerShell 7.2-től Set-Content beállíthatja a könyvtárakból és fájlokból származó alternatív adatfolyamok tartalmát.

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

-Value

Megadja az elem új tartalmát.

Type:Object[]
Position:1
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-WhatIf

Bemutatja, mi történne a parancsmag futtatásakor. A parancsmag nem fut.

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

Bevitelek

Object

A parancsmagba az elem új értékét tartalmazó objektumot csövezheti.

Kimenetek

None

Ez a parancsmag alapértelmezés szerint nem ad vissza kimenetet.

String

A PassThru paraméter használatakor ez a parancsmag a tartalmat képviselő sztringet adja vissza.

Jegyzetek

  • Set-Content sztringfeldolgozásra tervezték. Ha nem sztring típusú objektumokat csövez Set-Content, az írás előtt sztringgé alakítja át az objektumot. Ha objektumokat szeretne fájlba írni, használja Out-Filea .
  • A Set-Content parancsmag úgy lett kialakítva, hogy bármely szolgáltató által közzétett adatokkal működjön együtt. A munkamenetben elérhető szolgáltatók listájához írja be a következőt Get-PsProvider: További információ: about_Providers.