Udostępnij za pośrednictwem


Add-Content

Dodaje zawartość do określonych elementów, takich jak dodawanie wyrazów do pliku.

Składnia

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>]

Opis

Polecenie Add-Content cmdlet dołącza zawartość do określonego elementu lub pliku. Zawartość można przekazać z potoku lub określić za pomocą parametru Value .

Jeśli musisz utworzyć pliki lub katalogi dla następujących przykładów, zobacz New-Item (Nowy element).

Przykłady

Przykład 1. Dodawanie ciągu do wszystkich plików tekstowych z wyjątkiem

Ten przykład dołącza wartość do plików tekstowych w bieżącym katalogu, ale wyklucza pliki na podstawie ich nazwy pliku.

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

Parametr Ścieżka określa wszystkie .txt pliki w bieżącym katalogu, ale parametr Exclude ignoruje nazwy plików zgodne z określonym wzorcem. Parametr Value określa ciąg tekstowy zapisywany w plikach.

Użyj polecenia Get-Content , aby wyświetlić zawartość tych plików.

Przykład 2. Dodawanie daty na końcu określonych plików

Ten przykład dołącza datę do plików w bieżącym katalogu i wyświetla datę w konsoli programu PowerShell.

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

Polecenie Add-Content cmdlet tworzy dwa nowe pliki w bieżącym katalogu. Parametr Value zawiera dane wyjściowe Get-Date polecenia cmdlet. Parametr PassThru zwraca dodaną zawartość do potoku. Ponieważ nie ma innego polecenia cmdlet do odbierania danych wyjściowych, jest on wyświetlany w konsoli programu PowerShell. Polecenie Get-Content cmdlet wyświetla zaktualizowany plik . DateTimeFile1.log

Przykład 3. Dodawanie zawartości określonego pliku do innego pliku

W tym przykładzie zawartość jest pobierana z pliku i przechowuje zawartość w zmiennej. Zmienna jest używana do dołączania zawartości do innego pliku.

$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
  • Polecenie Get-Content cmdlet pobiera zawartość CopyFromFile.txt i przechowuje zawartość w zmiennej $From .
  • Polecenie Add-Content cmdlet aktualizuje CopyToFile.txt plik przy użyciu zawartości zmiennej $From .
  • Polecenie Get-Content cmdlet wyświetla CopyToFile.txt.

Przykład 4. Dodawanie zawartości określonego pliku do innego pliku przy użyciu potoku

W tym przykładzie zawartość jest pobierana z pliku i potokuje ją do Add-Content polecenia cmdlet .

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

Polecenie Get-Content cmdlet pobiera zawartość elementu CopyFromFile.txt. Wyniki są przesyłane potokami do Add-Content polecenia cmdlet, które aktualizuje CopyToFile.txtelement . Get-Content Ostatnie polecenie cmdlet wyświetla CopyToFile.txtpolecenie .

Przykład 5. Tworzenie nowego pliku i kopiowanie zawartości

W tym przykładzie tworzony jest nowy plik i kopiuje zawartość istniejącego pliku do nowego pliku.

Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
  • Polecenie Add-Content cmdlet używa parametrów Ścieżka i Wartość , aby utworzyć nowy plik w bieżącym katalogu.
  • Polecenie Get-Content cmdlet pobiera zawartość istniejącego pliku CopyFromFile.txt i przekazuje go do parametru Value . Nawiasy wokół Get-Content polecenia cmdlet zapewniają, że polecenie zakończy się przed rozpoczęciem Add-Content polecenia.
  • Polecenie Get-Content cmdlet wyświetla zawartość nowego pliku NewFile.txt.

Przykład 6. Dodawanie zawartości do pliku tylko do odczytu

To polecenie dodaje wartość do pliku, nawet jeśli atrybut pliku IsReadOnly ma ustawioną wartość True. Kroki tworzenia pliku tylko do odczytu znajdują się w przykładzie.

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
  • Polecenie New-Item cmdlet używa parametrów Path i ItemType do utworzenia pliku IsReadOnlyTextFile.txt w bieżącym katalogu.
  • Polecenie Set-ItemProperty cmdlet używa parametrów Nazwa i Wartość, aby zmienić właściwość IsReadOnly pliku na True.
  • Polecenie Get-ChildItem cmdlet pokazuje, że plik jest pusty (0) i ma atrybut tylko do odczytu (r).
  • Polecenie Add-Content cmdlet używa parametru Path do określenia pliku. Parametr Value zawiera ciąg tekstowy do dołączenia do pliku. Parametr Force zapisuje tekst w pliku tylko do odczytu.
  • Polecenie Get-Content cmdlet używa parametru Path do wyświetlania zawartości pliku.

Aby usunąć atrybut tylko do odczytu, użyj Set-ItemProperty polecenia z parametrem Value ustawionym na Falsewartość .

Przykład 7. Używanie filtrów z dodatkiem Zawartości

Możesz określić filtr polecenia Add-Content cmdlet. W przypadku używania filtrów w celu zakwalifikowania parametru Ścieżka należy dołączyć znak gwiazdki (*), aby wskazać zawartość ścieżki.

Następujące polecenie dodaje wyraz "Done" (Gotowe) zawartość wszystkich *.txt plików w C:\Temp katalogu.

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

Parametry

-AsByteStream

Określa, że zawartość powinna być odczytywana jako strumień bajtów. Ten parametr został wprowadzony w programie PowerShell 6.0.

Ostrzeżenie występuje, gdy używasz parametru AsByteStream z parametrem Kodowanie . Parametr AsByteStream ignoruje każde kodowanie, a dane wyjściowe są zwracane jako strumień bajtów.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Typ:SwitchParameter
Aliasy:cf
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Credential

Uwaga

Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby personifikować innego użytkownika lub podnieść poziom poświadczeń podczas uruchamiania tego polecenia cmdlet, użyj polecenia Invoke-Command.

Typ:PSCredential
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-Encoding

Określa typ kodowania dla pliku docelowego. Domyślna wartość to utf8NoBOM.

Kodowanie jest parametrem dynamicznym, który dostawca systemu plików dodaje do Add-Content polecenia cmdlet . Ten parametr działa tylko na dyskach systemu plików.

Dopuszczalne wartości tego parametru są następujące:

  • ascii: używa kodowania dla zestawu znaków ASCII (7-bitowych).
  • ansi: używa kodowania dla strony kodowej ANSI bieżącej kultury. Ta opcja została dodana w programie PowerShell 7.4.
  • bigendianunicode: Koduje w formacie UTF-16 przy użyciu kolejności bajtów big-endian.
  • bigendianutf32: Koduje w formacie UTF-32 przy użyciu kolejności bajtów big-endian.
  • oem: używa domyślnego kodowania dla programów MS-DOS i konsoli.
  • unicode: Koduje w formacie UTF-16 przy użyciu kolejności bajtów little-endian.
  • utf7: Koduje w formacie UTF-7.
  • utf8: Koduje w formacie UTF-8.
  • utf8BOM: Koduje w formacie UTF-8 za pomocą języka Byte Order Mark (BOM)
  • utf8NoBOM: Koduje w formacie UTF-8 bez znaku kolejności bajtów (BOM)
  • utf32: Koduje w formacie UTF-32.

Począwszy od programu PowerShell 6.2, parametr Kodowanie umożliwia również numeryczne identyfikatory zarejestrowanych stron kodu (takich jak ) lub nazwy ciągów zarejestrowanych stron kodu (na przykład -Encoding 1251-Encoding "windows-1251"). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą pliku Encoding.CodePage.

Począwszy od programu PowerShell 7.4, można użyć Ansi wartości parametru Kodowanie , aby przekazać identyfikator liczbowy dla strony kodowej ANSI bieżącej kultury bez konieczności ręcznego określania go.

Uwaga

UtF-7* nie jest już zalecane do użycia. Zgodnie z programem PowerShell 7.1 ostrzeżenie jest zapisywane w przypadku określenia utf7 parametru Kodowanie .

Typ:Encoding
Dopuszczalne wartości:ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32
Position:Named
Domyślna wartość:UTF8NoBOM
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Exclude

Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet wyklucza w operacji. Wartość tego parametru kwalifikuje parametr Path . Wprowadź element ścieżki lub wzorzec, taki jak *.txt. Dozwolone są symbole wieloznaczne. Parametr Exclude jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*, gdzie symbol wieloznaczny określa zawartość C:\Windows katalogu.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-Filter

Określa filtr, aby zakwalifikować parametr Ścieżka . Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell, który obsługuje korzystanie z filtrów. Składnię języka filtru Systemu plików można znaleźć w about_Wildcards. Filtry są bardziej wydajne niż inne parametry, ponieważ dostawca stosuje je, gdy polecenie cmdlet pobiera obiekty, zamiast filtrować obiekty programu PowerShell po ich pobraniu.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-Force

Zastępuje atrybut tylko do odczytu, umożliwiając dodawanie zawartości do pliku tylko do odczytu. Na przykład wymuś zastąpienie atrybutu tylko do odczytu, ale nie zmienia uprawnień do pliku.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Include

Określa jako tablicę ciągów element lub elementy, które to polecenie cmdlet zawiera w operacji. Wartość tego parametru kwalifikuje parametr Path . Wprowadź element ścieżki lub wzorzec, taki jak "*.txt". Dozwolone są symbole wieloznaczne. Parametr Include jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*, gdzie symbol wieloznaczny określa zawartość C:\Windows katalogu.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:True

-LiteralPath

Określa ścieżkę do co najmniej jednej lokalizacji. Wartość LiterałuPath jest używana dokładnie tak, jak jest typowana. Znaki nie są interpretowane jako symbole wieloznaczne. Jeśli ścieżka zawiera znaki ucieczki, należy ująć ją w pojedynczy cudzysłów. Pojedyncze znaki cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Typ:String[]
Aliasy:PSPath, LP
Position:Named
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-NoNewline

Wskazuje, że to polecenie cmdlet nie dodaje nowego wiersza ani powrotu karetki do zawartości.

Reprezentacje ciągów obiektów wejściowych są łączone w celu utworzenia danych wyjściowych. Między ciągami wyjściowymi nie są wstawione spacje ani nowe linie. Nie dodano nowego wiersza po ostatnim ciągu danych wyjściowych.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-PassThru

Zwraca obiekt reprezentujący dodaną zawartość. Domyślnie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Typ:SwitchParameter
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Path

Określa ścieżkę do elementów, które otrzymują dodatkową zawartość. Dozwolone są symbole wieloznaczne. Ścieżki muszą być ścieżkami do elementów, a nie do kontenerów. Na przykład należy określić ścieżkę do jednego lub kilku plików, a nie ścieżkę do katalogu. Jeśli określisz wiele ścieżek, użyj przecinków, aby oddzielić ścieżki.

Typ:String[]
Position:0
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:True

-Stream

Uwaga

Ten parametr jest dostępny tylko w systemie Windows.

Określa alternatywny strumień danych dla zawartości. Jeśli strumień nie istnieje, to polecenie cmdlet go utworzy. Symbole wieloznaczne nie są obsługiwane.

Stream to parametr dynamiczny, który dostawca systemu plików dodaje do elementu Add-Content. Ten parametr działa tylko na dyskach systemu plików.

Możesz użyć Add-Content polecenia cmdlet , aby zmienić zawartość dowolnego alternatywnego strumienia danych, takiego jak Zone.Identifier. Nie zalecamy jednak tego jako sposobu na wyeliminowanie kontroli zabezpieczeń, które blokują pliki pobierane z Internetu. Jeśli sprawdzisz, czy pobrany plik jest bezpieczny, użyj Unblock-File polecenia cmdlet .

Ten parametr został wprowadzony w programie PowerShell 3.0. W programie PowerShell 7.2 Add-Content można kierować alternatywne strumienie danych zarówno do plików, jak i katalogów.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-Value

Określa zawartość do dodania. Wpisz ciąg cytowany, taki jak Te dane są przeznaczone tylko do użytku wewnętrznego, lub określ obiekt zawierający zawartość, taką jak obiekt DateTime , który Get-Date generuje.

Nie można określić zawartości pliku, wpisując jego ścieżkę, ponieważ ścieżka jest tylko ciągiem. Możesz użyć Get-Content polecenia , aby pobrać zawartość i przekazać ją do parametru Value .

Typ:Object[]
Position:1
Domyślna wartość:None
Wymagane:True
Akceptowanie danych wejściowych potoku:True
Akceptowanie symboli wieloznacznych:False

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie jest uruchamiane.

Typ:SwitchParameter
Aliasy:wi
Position:Named
Domyślna wartość:False
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

Object

Wartości potoku można przekazać do Add-Contentelementu .

PSCredential

Możesz przekazać poświadczenia potokowe do pliku Add-Content.

Dane wyjściowe

None

Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.

String

Jeśli używasz parametru PassThru , to polecenie cmdlet zwraca obiekt System.String reprezentujący zawartość.

Uwagi

Program PowerShell zawiera następujące aliasy dla programu Add-Content:

  • Windows:

    • ac
  • Podczas potoku obiektu do Add-Contentobiektu obiekt jest konwertowany na ciąg przed dodaniu go do elementu. Typ obiektu określa format ciągu, ale format może być inny niż domyślny ekran obiektu. Aby kontrolować format ciągu, użyj parametrów formatowania polecenia cmdlet wysyłającego.

  • Polecenie Add-Content cmdlet jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpisz Get-PSProvider. Aby uzyskać więcej informacji, zobacz about_Providers.