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 określić, wpisując zawartość w poleceniu lub określając obiekt zawierający zawartość.

Jeśli chcesz utworzyć pliki lub katalogi w poniższych przykładach, 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

Ten przykład pobiera zawartość 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 Add-Content do polecenia cmdlet, które aktualizuje element CopyToFile.txt. Get-Content Ostatnie polecenie cmdlet wyświetla polecenie CopyToFile.txtcmdlet .

Przykład 5: Twórca nowy plik 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ść do utworzenia nowego pliku 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 isReadOnly jest ustawiony na True. Kroki tworzenia pliku tylko do odczytu zostały uwzględnione 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 wartość False.

Przykład 7. Używanie filtrów z Add-Content

Możesz określić filtr polecenia Add-Content cmdlet. W przypadku używania filtrów w celu zakwalifikowania parametru Ścieżka należy uwzględnić końcową gwiazdkę (*), aby wskazać zawartość ścieżki.

Następujące polecenie dodaje wyraz "Done" (Gotowe) zawartości 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 wszelkie kodowanie, a dane wyjściowe są zwracane jako strumień bajtów.

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

-Confirm

Monituje o potwierdzenie przed uruchomieniem polecenia cmdlet.

Type:SwitchParameter
Aliases:cf
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

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

-Encoding

Określa typ kodowania dla pliku docelowego. Wartość domyślna to utf8NoBOM.

Kodowanie jest parametrem dynamicznym dodawanym przez dostawcę Add-Content systemu plików do 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-bitowy).
  • 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 konsolowych.
  • 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ą znacznika kolejności bajtów (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ż identyfikatory liczbowe zarejestrowanych stron kodowych (takich jak ) lub nazwy ciągów zarejestrowanych stron kodowych (na przykład -Encoding 1251-Encoding "windows-1251"). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą pliku Encoding.CodePage.

Uwaga

UtF-7* nie jest już zalecane do użycia. W programie PowerShell 7.1 ostrzeżenie jest zapisywane, jeśli określono utf7 parametr Kodowanie .

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

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.

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

-Filter

Określa filtr w celu zakwalifikowania parametru Ś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.

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

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 je ująć w pojedynczy cudzysłów. Znaki pojedynczego cudzysłowu informują program PowerShell, aby nie interpretował żadnych znaków jako sekwencji ucieczki.

Aby uzyskać więcej informacji, zobacz about_Quoting_Rules.

Type:String[]
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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. Żadne spacje ani nowe linie nie są wstawiane między ciągami wyjściowymi. Nie dodano nowego wiersza po ostatnim ciągu danych wyjściowych.

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

-PassThru

Zwraca obiekt reprezentujący dodaną zawartość. Domyślnie to polecenie cmdlet nie generuje żadnego wyniku.

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

-Path

Określa ścieżkę do elementów, które odbierają dodatkową zawartość. Dozwolone są symbole wieloznaczne. Ścieżki muszą być ścieżkami do elementów, a nie kontenerami. 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.

Type:String[]
Position:0
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters: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 jest parametrem dynamicznym, który dostawca systemu plików dodaje do Add-Contentelementu . 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, na przykład Zone.Identifier. Nie zalecamy jednak tego jako sposobu wyeliminowania 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.

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

-Value

Określa zawartość do dodania. Wpisz ciąg cytowany, taki jak Te dane tylko do użytku wewnętrznego, lub określ obiekt zawierający zawartość, na przykład 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 .

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

-WhatIf

Pokazuje, co się stanie po uruchomieniu polecenia cmdlet. Polecenie cmdlet nie zostało uruchomione.

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

Dane wejściowe

System.Object, System.Management.Automation.PSCredential

Wartości, ścieżki lub poświadczenia można przekazać potokowo do elementu Set-Content.

Dane wyjściowe

None or System.String

Gdy używasz parametru PassThru , Add-Content generuje obiekt System.String reprezentujący zawartość. W przeciwnym razie to polecenie cmdlet nie generuje żadnych danych wyjściowych.

Uwagi

  • Podczas potokowania 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 różnić się od domyślnego wyświetlania obiektu. Aby kontrolować format ciągu, użyj parametrów formatowania polecenia cmdlet wysyłającego.
  • Możesz również odwołać się do Add-Content jej wbudowanego aliasu , ac. Aby uzyskać więcej informacji, zobacz about_Aliases.
  • 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.