Add-Content

Přidá obsah do zadaných položek, například přidání slov do souboru.

Syntax

Add-Content
   [-Path] <string[]>
   [-Value] <Object[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-NoNewline]
   [-Encoding <Encoding>]
   [-AsByteStream]
   [-Stream <string>]
   [<CommonParameters>]
Add-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

Rutina Add-Content připojí obsah k zadané položce nebo souboru. Obsah lze předat z kanálu nebo zadat pomocí parametru Value .

Pokud potřebujete vytvořit soubory nebo adresáře pro následující příklady, přečtěte si téma Nová položka.

Příklady

Příklad 1: Přidání řetězce do všech textových souborů s výjimkou

Tento příklad připojí hodnotu k textovým souborům v aktuálním adresáři, ale vyloučí soubory na základě jejich názvu.

Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'

Parametr Cesta určuje všechny .txt soubory v aktuálním adresáři, ale parametr Exclude ignoruje názvy souborů, které odpovídají zadanému vzoru. Parametr Value určuje textový řetězec, který je zapsán do souborů.

K zobrazení obsahu těchto souborů použijte funkci Get-Content .

Příklad 2: Přidání data na konec zadaných souborů

Tento příklad připojí datum k souborům v aktuálním adresáři a zobrazí datum v konzole PowerShellu.

Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log

Tuesday, May 14, 2019 8:24:27 AM
Tuesday, May 14, 2019 8:24:27 AM
5/14/2019 8:24:27 AM

Rutina Add-Content vytvoří v aktuálním adresáři dva nové soubory. Parametr Value obsahuje výstup rutiny Get-Date . Parametr PassThru vypíše přidaný obsah do kanálu. Vzhledem k tomu, že neexistuje žádná jiná rutina pro příjem výstupu, zobrazí se v konzole PowerShellu. Rutina Get-Content zobrazí aktualizovaný soubor DateTimeFile1.log.

Příklad 3: Přidání obsahu zadaného souboru do jiného souboru

Tento příklad získá obsah ze souboru a uloží obsah do proměnné. Proměnná se používá k připojení obsahu do jiného souboru.

$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
  • Rutina Get-Content získá obsah CopyFromFile.txt a uloží obsah do $From proměnné.
  • Rutina Add-Content aktualizuje CopyToFile.txt soubor pomocí obsahu $From proměnné.
  • Rutina Get-Content zobrazí CopyToFile.txt.

Příklad 4: Přidání obsahu zadaného souboru do jiného souboru pomocí kanálu

Tento příklad získá obsah ze souboru a předá ho do rutiny Add-Content .

Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt

Rutina Get-Content získá obsah .CopyFromFile.txt Výsledky se předávají rutině Add-Content , která aktualizuje CopyToFile.txt. Zobrazí se poslední Get-Content rutina CopyToFile.txt.

Příklad 5: Vytvoření nového souboru a zkopírování obsahu

Tento příklad vytvoří nový soubor a zkopíruje obsah existujícího souboru do nového souboru.

Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
  • Rutina Add-Content používá parametry Path a Value k vytvoření nového souboru v aktuálním adresáři.
  • Rutina Get-Content získá obsah existujícího souboru CopyFromFile.txt a předá ho parametru Value . Závorky kolem Get-Content rutiny zajišťují, že se příkaz dokončí před zahájením Add-Content příkazu.
  • Rutina Get-Content zobrazí obsah nového souboru NewFile.txt.

Příklad 6: Přidání obsahu do souboru jen pro čtení

Tento příkaz přidá do souboru hodnotu, i když je atribut souboru IsReadOnly nastaven na Hodnotu True. Kroky k vytvoření souboru jen pro čtení jsou zahrnuty v příkladu.

New-Item -Path .\IsReadOnlyTextFile.txt -ItemType File
Set-ItemProperty -Path .\IsReadOnlyTextFile.txt -Name IsReadOnly -Value $True
Get-ChildItem -Path .\IsReadOnlyTextFile.txt
Add-Content -Path .\IsReadOnlyTextFile.txt -Value 'Add value to read-only text file' -Force
Get-Content -Path .\IsReadOnlyTextFile.txt

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-ar--         1/28/2019     13:35              0 IsReadOnlyTextFile.txt
  • Rutina New-Item používá k vytvoření souboru IsReadOnlyTextFile.txt v aktuálním adresáři parametry Path a ItemType.
  • Rutina Set-ItemProperty používá parametry Name a Value ke změně vlastnosti IsReadOnly souboru na True.
  • Rutina Get-ChildItem ukazuje, že soubor je prázdný (0) a má atribut jen pro čtení (r).
  • Rutina Add-Content k zadání souboru používá parametr Path . Parametr Value obsahuje textový řetězec, který se má připojit k souboru. Parametr Force zapíše text do souboru jen pro čtení.
  • Rutina Get-Content používá k zobrazení obsahu souboru parametr Path .

Chcete-li odebrat atribut jen pro čtení, použijte Set-ItemProperty příkaz s parametrem Value nastaveným na False.

Příklad 7: Použití filtrů s obsahem doplňku

Můžete zadat filtr pro rutinu Add-Content . Při použití filtrů pro kvalifikaci parametru Path musíte zahrnout koncovou hvězdičku (*), která označuje obsah cesty.

Následující příkaz přidá slovo Hotovo obsah všech *.txt souborů v C:\Temp adresáři.

Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"

Parametry

-AsByteStream

Určuje, že obsah by se měl číst jako datový proud bajtů. Tento parametr byl představen v PowerShellu 6.0.

Při použití parametru AsByteStream s parametrem Encoding dojde k upozornění. Parametr AsByteStream ignoruje jakékoli kódování a výstup se vrátí jako datový proud bajtů.

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

-Confirm

Před spuštěním rutiny zobrazí výzvu k potvrzení.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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 úroveň přihlašovacích údajů při spuštění této rutiny, použijte Invoke-Command.

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

-Encoding

Určuje typ kódování cílového souboru. Výchozí hodnota je utf8NoBOM.

Kódování je dynamický parametr, který zprostředkovatel FileSystem přidává do rutiny Add-Content . Tento parametr funguje jenom na jednotkách systému souborů.

Přijatelné hodnoty pro tento parametr jsou následující:

  • ascii: Používá kódování znakové sady ASCII (7bitová).
  • bigendianunicode: Kóduje ve formátu UTF-16 pomocí pořadí velkých bajtů.
  • bigendianutf32: Kóduje ve formátu UTF-32 pomocí pořadí velkých bajtů.
  • oem: Používá výchozí kódování pro MS-DOS a konzolové programy.
  • unicode: Kóduje ve formátu UTF-16 pomocí malého bajtového pořadí.
  • utf7: Kóduje ve formátu UTF-7.
  • utf8: Kóduje ve formátu UTF-8.
  • utf8BOM: Kódování ve formátu UTF-8 pomocí značky pořadí bajtů (BOM)
  • utf8NoBOM: Kódování ve formátu UTF-8 bez značky pořadí bajtů (BOM)
  • utf32: Kóduje ve formátu UTF-32.

Počínaje PowerShellem 6.2 umožňuje parametr Kódování také číselná ID registrovaných znakových stránek (jako -Encoding 1251) nebo názvy řetězců registrovaných znakových stránek (například -Encoding "windows-1251"). Další informace najdete v dokumentaci k .NET pro Encoding.CodePage.

Poznámka:

UTF-7* se už nedoporučuje používat. Od PowerShellu 7.1 se při zadání parametru Encoding zapíše utf7 upozornění.

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

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 element nebo vzor cesty, například *.txt. Jsou povoleny zástupné znaky. Parametr Exclude je účinný pouze v případě, že příkaz obsahuje obsah položky, například C:\Windows\*, kde zástupný znak určuje obsah C:\Windows adresáře.

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

-Filter

Určuje filtr, který má kvalifikovat parametr 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í vyfiltrovala PowerShell.

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

-Force

Přepíše atribut jen pro čtení, který umožňuje přidat obsah do souboru jen pro čtení. Vynucení například přepíše atribut jen pro čtení, ale nezmění oprávnění k souborům.

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 element nebo vzor cesty, 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 C:\Windows adresáře.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

-NoNewline

Označuje, že tato rutina nepřidá do obsahu nový řádek ani začátek řádku.

Ř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.

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

-PassThru

Vrátí objekt představující přidaný obsah. Ve výchozím nastavení tato rutina negeneruje žádný výstup.

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

-Path

Určuje cestu k položkám, které přijímají další obsah. Jsou povoleny zástupné znaky. Cesty musí být cesty k položkám, nikoli ke kontejnerům. Musíte například zadat cestu k jednomu nebo více souborům, nikoli cestě k adresáři. Pokud zadáte více cest, oddělte cesty čárkami.

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

-Stream

Poznámka:

Tento parametr je k dispozici pouze ve Windows.

Určuje alternativní datový proud pro obsah. Pokud stream neexistuje, tato rutina ho vytvoří. Zástupné znaky nejsou podporované.

Stream je dynamický parametr, ke kterému zprostředkovatel FileSystem přidává Add-Content. Tento parametr funguje jenom na jednotkách systému souborů.

Pomocí této rutiny Add-Content můžete změnit obsah libovolného alternativního datového proudu, například Zone.Identifier. Nedoporučujeme to ale jako způsob, jak eliminovat kontroly zabezpečení, které blokují soubory stažené z internetu. Pokud ověříte, že stažený soubor je bezpečný, použijte tuto rutinu Unblock-File .

Tento parametr byl představen v PowerShellu 3.0. Od PowerShellu 7.2 Add-Content může cílit na alternativní datové proudy v souborech i adresářích.

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

-Value

Určuje obsah, který se má přidat. Zadejte řetězec s uvozovou sadou, například Tato data, pouze pro interní použití, nebo zadejte objekt, který obsahuje obsah, například objekt DateTime , který Get-Date generuje.

Obsah souboru nemůžete zadat zadáním jeho cesty, protože cesta je jen řetězec. K získání obsahu a jeho předání do parametru Value můžete použít Get-Content příkaz.

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

-WhatIf

Zobrazuje, co by se stalo při spuštění rutiny. Rutina se nespustí.

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

Vstupy

Object

Hodnoty můžete pipetovat do Add-Content.

PSCredential

Přihlašovací údaje můžete vést na Add-Content.

Výstupy

None

Ve výchozím nastavení tato rutina nevrací žádný výstup.

String

Pokud použijete parametr PassThru , vrátí tato rutina objekt System.String představující obsah.

Poznámky

PowerShell obsahuje následující aliasy pro Add-Content:

  • Windows:

    • ac
  • Když předáte objekt Add-Contentdo objektu , objekt se před jeho přidáním do položky převede na řetězec. Typ objektu určuje formát řetězce, ale formát se může lišit od výchozího zobrazení objektu. K řízení formátu řetězce použijte parametry formátování odesílající rutiny.

  • Rutina Add-Content je navržená tak, aby fungovala s daty vystavenými libovolným poskytovatelem. Pokud chcete zobrazit seznam poskytovatelů dostupných v relaci, zadejte Get-PSProvider. Další informace najdete v tématu about_Providers.