Set-Content
Zapíše nový obsah nebo nahradí existující obsah v souboru.
Syntaxe
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
je rutina pro zpracování řetězců, která zapisuje nový obsah nebo nahrazuje obsah v souboru.
Set-Content
nahradí existující obsah a liší se od rutiny Add-Content
, která připojuje obsah k souboru. K odesílání obsahu do Set-Content
můžete použít parametr Hodnota na příkazovém řádku nebo odeslat obsah prostřednictvím kanálu.
Pokud potřebujete vytvořit soubory nebo adresáře pro následující příklady, přečtěte si New-Item .
Příklady
Příklad 1: Nahrazení obsahu více souborů v adresáři
Tento příklad nahrazuje obsah více souborů v aktuálním adresáři.
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
Rutina Get-ChildItem
používá parametr Path k výpisu .txt souborů, které začínají Test*
v aktuálním adresáři. Rutina Set-Content
používá k určení Test*.txt
souborů parametr Path. Parametr hodnota Get-Content
pomocí parametru Cesta určuje soubory Test*.txt
a zobrazí obsah jednotlivých souborů v konzole PowerShellu.
Příklad 2: Vytvoření nového souboru a zápis obsahu
Tento příklad vytvoří nový soubor a zapíše aktuální datum a čas do souboru.
Set-Content -Path .\DateTime.txt -Value (Get-Date)
Get-Content -Path .\DateTime.txt
1/30/2019 09:55:08
Set-Content
používá parametry Path a Value k vytvoření nového souboru s názvem DateTime.txt v aktuálním adresáři. Parametr hodnoty Set-Content
zapíše objekt DateTime do souboru jako řetězec. Rutina Get-Content
používá parametr Path k zobrazení obsahu DateTime.txt v konzole PowerShellu.
Příklad 3: Nahrazení textu v souboru
Tento příkaz nahradí všechny instance slova v existujícím souboru.
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.
Rutina Get-Content
používá parametr Path k určení souboru Notice.txt v aktuálním adresáři. Příkaz Get-Content
se zabalí do závorek, aby se příkaz dokončil před odesláním kanálu.
Obsah souboru Notice.txt se odešle do kanálu do rutiny ForEach-Object
.
ForEach-Object
používá automatickou proměnnou $_
a nahradí každý výskyt upozornění Upozornění. Objekty se odesílají do Set-Content
rutiny.
Set-Content
použije parametr Path k určení souboru Notice.txt a zapíše aktualizovaný obsah do souboru.
Poslední Get-Content
rutina zobrazí aktualizovaný obsah souboru v konzole PowerShellu.
Příklad 4: Použití filtrů s Set-Content
Můžete zadat filtr pro Set-Content
rutinu. Při použití filtrů k kvalifikaci parametru Path musíte zahrnout koncovou hvězdičku (*
), která označuje obsah cesty.
Následující příkaz nastaví obsah všech *.txt
souborů v adresáři C:\Temp
na hodnotu hodnota prázdné.
Set-Content -Path C:\Temp\* -Filter *.txt -Value "Empty"
Parametry
-Confirm
Před spuštěním rutiny vás vyzve k potvrzení.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Credential
Poznámka
Tento parametr nejsou podporovány žádnými poskytovateli nainstalovanými v PowerShellu. Pokud chcete zosobnit jiného uživatele nebo zvýšit oprávnění při spuštění této rutiny, použijte Invoke-Command.
Typ: | PSCredential |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-Encoding
Určuje typ kódování cílového souboru. Výchozí hodnota je Výchozí.
Kódování je dynamický parametr, který zprostředkovatel FileSystem přidává do Set-Content
. Tento parametr funguje jenom na jednotkách systému souborů.
Přijatelné hodnoty pro tento parametr jsou následující:
- ASCII používá znakovou sadu ASCII (7bitová).
- BigEndianUnicode používá UTF-16 s pořadím velkých bajtů.
- BigEndianUTF32 Používá UTF-32 s pořadím velkých bajtů.
- Bajt Zakóduje sadu znaků do posloupnosti bajtů.
- Výchozí Používá kódování odpovídající aktivní znakové stránce systému (obvykle ANSI).
- OEM Používá kódování odpovídající aktuální znakové stránce OEM systému.
- řetězec stejné jako unicode.
- Unicode používá UTF-16 s minimálním pořadím bajtů.
neznámé stejné jakounicode. - UTF7 používá UTF-7.
- UTF8 používá UTF-8.
- UTF32 používá UTF-32 s malým pořadím bajtů.
Kódování je dynamický parametr, který zprostředkovatel FileSystem přidává do Set-Content
. Tento parametr funguje jenom na jednotkách systému souborů.
Typ: | FileSystemCmdletProviderEncoding |
Přípustné hodnoty: | ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
Position: | Named |
Default value: | Default |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Exclude
Určuje, jako pole řetězců, položku nebo položky, které tato rutina vylučuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například *.txt
. Jsou povoleny zástupné znaky. Parametr Exclude je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*
, kde zástupný znak určuje obsah adresáře C:\Windows
.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Filter
Určuje filtr pro kvalifikaci parametru Path. Zprostředkovatel FileSystem je jediným nainstalovaným poskytovatelem PowerShellu, který podporuje použití filtrů. Syntaxi jazyka filtru FileSystem najdete v about_Wildcards. Filtry jsou efektivnější než jiné parametry, protože je poskytovatel použije, když rutina získá objekty místo toho, aby objekty po jejich načtení vyfiltroval PowerShell.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-Force
Vynutí rutinu nastavit obsah souboru, i když je soubor jen pro čtení. Implementace se liší od zprostředkovatele po zprostředkovatele. Další informace naleznete v tématu about_Providers. Parametr Force nepřepíše omezení zabezpečení.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Include
Určuje, jako pole řetězců, položku nebo položky, které tato rutina zahrnuje v operaci. Hodnota tohoto parametru kvalifikuje parametr Path. Zadejte prvek cesty nebo vzor, například "*.txt"
. Jsou povoleny zástupné znaky. Parametr Include je efektivní pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*
, kde zástupný znak určuje obsah adresáře C:\Windows
.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | True |
-LiteralPath
Určuje cestu k jednomu nebo více umístěním. Hodnota LiteralPath se používá přesně tak, jak je zadána. Žádné znaky nejsou interpretovány jako zástupné znaky. Pokud cesta obsahuje řídicí znaky, uzavřete ji do jednoduchých uvozovek. Jednoduché uvozovky říkají PowerShellu, aby nepřekládaly žádné znaky jako řídicí sekvence.
Další informace najdete v tématu about_Quoting_Rules.
Typ: | String[] |
Aliasy: | PSPath |
Position: | Named |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-NoNewline
Řetězcové reprezentace vstupních objektů jsou zřetězeny tak, aby vytvořily výstup. Mezi výstupní řetězce se nevkládají žádné mezery ani nové čáry. Za poslední výstupní řetězec se nepřidá žádný nový řádek.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-PassThru
Vrátí objekt, který představuje obsah. Ve výchozím nastavení tato rutina negeneruje žádný výstup.
Typ: | SwitchParameter |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Path
Určuje cestu k položce, která přijímá obsah. Jsou povoleny zástupné znaky.
Typ: | String[] |
Position: | 0 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | True |
-Stream
Určuje alternativní datový proud pro obsah. Pokud stream neexistuje, tato rutina ho vytvoří. Zástupné znaky nejsou podporovány.
Stream je dynamický parametr, který zprostředkovatel FileSystem přidává do Set-Content
. Tento parametr funguje jenom na jednotkách systému souborů.
Pomocí rutiny Set-Content
můžete změnit obsah Zone.Identifier alternativní datový proud. Nedoporučujeme to ale jako způsob, jak eliminovat kontroly zabezpečení, které blokují soubory stažené z internetu. Pokud ověříte, že je stažený soubor v bezpečí, použijte rutinu Unblock-File
.
Tento parametr byl představen v PowerShellu 3.0.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UseTransaction
Zahrnuje příkaz v aktivní transakci. Tento parametr je platný pouze v případě, že probíhá transakce. Další informace najdete v tématu about_Transactions.
Typ: | SwitchParameter |
Aliasy: | usetx |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-Value
Určuje nový obsah položky.
Typ: | Object[] |
Position: | 1 |
Default value: | None |
Vyžadováno: | True |
Přijmout vstup kanálu: | True |
Přijmout zástupné znaky: | False |
-WhatIf
Ukazuje, co se stane, když se rutina spustí. Rutina se nespustí.
Typ: | SwitchParameter |
Aliasy: | wi |
Position: | Named |
Default value: | False |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
Objekt, který obsahuje novou hodnotu položky, která se má Set-Content
, lze pipetovat .
Výstupy
None or System.String
Pokud použijete parametr PassThru, Set-Content
vygeneruje objekt System.String, který představuje obsah. Jinak tato rutina negeneruje žádný výstup.
Poznámky
- Můžete také odkazovat na
Set-Content
jeho předdefinovaný aliassc
. Další informace naleznete v tématu about_Aliases. -
Set-Content
je určená ke zpracování řetězců. Pokud před zápisem převedete neřetězcové objekty naSet-Content
, převede objekt na řetězec. K zápisu objektů do souborů použijteOut-File
. - Rutina
Set-Content
je navržená tak, aby fungovala s daty vystavenými jakýmkoli poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejteGet-PsProvider
. Další informace naleznete v tématu about_Providers.