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 cmdlet Add-Content
dołącza zawartość do określonego elementu lub pliku. Zawartość można przekazać z potoku danych lub określić przy użyciu parametru Value.
Jeśli musisz utworzyć pliki lub katalogi dla następujących przykładów, zobacz New-Item.
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 pliki .txt
w bieżącym katalogu, ale parametr wyklucz ignoruje nazwy plików zgodne z określonym wzorcem. Parametr Value określa ciąg tekstowy zapisywany w plikach.
Użyj 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 cmdlet Add-Content
tworzy dwa nowe pliki w bieżącym katalogu. Parametr Value zawiera dane wyjściowe polecenia cmdlet Get-Date
. Parametr PassThru zwraca dodaną zawartość do potoku. Ponieważ nie ma innego polecenia cmdlet do odbierania danych wyjściowych, są one wyświetlane w konsoli PowerShell. Polecenie cmdlet Get-Content
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 cmdlet
Get-Content
pobiera zawartośćCopyFromFile.txt
i przechowuje zawartość w zmiennej$From
. - Polecenie cmdlet
Add-Content
aktualizuje plikCopyToFile.txt
przy użyciu zawartości zmiennej$From
. - Polecenie cmdlet
Get-Content
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 polecenia cmdlet Add-Content
.
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
Cmdlet Get-Content
pobiera zawartość CopyFromFile.txt
. Wyniki są przesyłane do polecenia cmdlet Add-Content
, które aktualizuje CopyToFile.txt
.
Ostatni cmdlet Get-Content
wyświetla CopyToFile.txt
.
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 cmdlet
Add-Content
używa parametrów Path i Value do utworzenia nowego pliku w bieżącym katalogu. - Polecenie cmdlet
Get-Content
pobiera zawartość istniejącego pliku,CopyFromFile.txt
i przekazuje ją do parametru Value. Nawiasy wokół polecenia cmdletGet-Content
upewniają się, że polecenie zakończy się przed rozpoczęciem poleceniaAdd-Content
. - Polecenie cmdlet
Get-Content
wyświetla zawartość nowego plikuNewFile.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 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 cmdlet
New-Item
używa parametrów Path i ItemType w celu utworzenia plikuIsReadOnlyTextFile.txt
w bieżącym katalogu. - Polecenie cmdlet
Set-ItemProperty
używa parametrów Name i Value, aby zmienić właściwość IsReadOnly pliku na True. - Polecenie cmdlet
Get-ChildItem
pokazuje, że plik jest pusty (0
) i ma atrybut tylko do odczytu (r
). - Polecenie cmdlet
Add-Content
używa parametru Path w celu określenia pliku. Parametr Value zawiera ciąg tekstowy do dołączenia do pliku. Parametr Force zapisuje tekst w pliku tylko do odczytu. - Polecenie cmdlet
Get-Content
używa parametru path do wyświetlania zawartości pliku.
Aby usunąć atrybut tylko do odczytu, użyj polecenia Set-ItemProperty
z parametrem Value ustawionym na False
.
Przykład 7. Używanie filtrów z Add-Content
Możesz określić filtr dla polecenia cmdlet Add-Content
. W przypadku używania filtrów do kwalifikowania parametru ścieżki , należy dołączyć gwiazdkę na końcu (*
), aby wskazać zawartość ścieżki.
Następujące polecenie dodaje wyraz "Done" do zawartości wszystkich plików *.txt
w katalogu C:\Temp
.
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.
Podczas używania parametru AsByteStream z parametrem Encoding występuje ostrzeżenie. Parametr AsByteStream ignoruje 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
Prosi o potwierdzenie przed uruchomieniem cmdlet.
Typ: | SwitchParameter |
Aliasy: | cf |
Position: | Named |
Domyślna wartość: | False |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | False |
-Credential
Notatka
Ten parametr nie jest obsługiwany przez żadnych dostawców zainstalowanych w programie PowerShell. Aby podszywać się pod innego użytkownika lub podnieść swoje poświadczenia podczas uruchamiania tego cmdletu, użyj 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. Wartość domyślna to utf8NoBOM
.
Kodowanie jest parametrem dynamicznym, który dostawca systemu plików dodaje do polecenia cmdlet Add-Content
. Ten parametr działa tylko na dyskach systemu plików.
Dopuszczalne wartości tego parametru są następujące:
-
ascii
: używa kodowania 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 porządku 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, Kodowanie parametr umożliwia również numeryczne identyfikatory zarejestrowanych stron kodu (na przykład -Encoding 1251
) lub nazwy ciągów zarejestrowanych stron kodu (na przykład -Encoding "windows-1251"
). Aby uzyskać więcej informacji, zobacz dokumentację platformy .NET dotyczącą Encoding.CodePage.
Począwszy od programu PowerShell 7.4, można użyć wartości Ansi
parametru kodowania, aby przekazać identyfikator liczbowy dla strony kodowej ANSI bieżącej kultury bez konieczności ręcznego określania go.
Notatka
UTF-7 * nie jest już zalecane do użycia. Od wersji PowerShell 7.1 zapisywane jest ostrzeżenie, jeśli określisz utf7
dla parametru kodowania .
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ść katalogu C:\Windows
.
Typ: | String[] |
Position: | Named |
Domyślna wartość: | None |
Wymagane: | False |
Akceptowanie danych wejściowych potoku: | False |
Akceptowanie symboli wieloznacznych: | True |
-Filter
Określa filtr do wyznaczenia parametru ścieżki. Dostawca systemu plików jest jedynym zainstalowanym dostawcą programu PowerShell obsługującym 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 Opcje wymuszania zastępują atrybut tylko do odczytu, ale nie zmieniają 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ą znaki wieloznaczne. Parametr Include jest skuteczny tylko wtedy, gdy polecenie zawiera zawartość elementu, na przykład C:\Windows\*
, gdzie symbol wieloznaczny określa zawartość katalogu C:\Windows
.
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ść LiteralPath 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
Notatka
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-Content
. Ten parametr działa tylko na dyskach systemu plików.
Możesz użyć polecenia cmdlet Add-Content
, 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 polecenia cmdlet Unblock-File
.
Ten parametr został wprowadzony w programie PowerShell 3.0. W wersji PowerShell 7.2 Add-Content
mogą obsługiwać alternatywne strumienie danych zarówno w plikach, jak i katalogach.
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 cudzysłów, taki jak Te dane są przeznaczone 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ć polecenia Get-Content
, 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, jeśli polecenie cmdlet zostanie uruchomione. Polecenie cmdlet nie zostało uruchomione.
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
Można przekierować wartości do Add-Content
.
Możesz przesłać poświadczenia do Add-Content
.
Dane wyjściowe
None
Domyślnie to polecenie cmdlet nie zwraca żadnych danych wyjściowych.
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 Add-Content
:
Windows:
ac
Gdy przesyłasz obiekt do
Add-Content
, jest on konwertowany na ciąg przed dodaniem 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 cmdlet
Add-Content
jest przeznaczone do pracy z danymi udostępnianymi przez dowolnego dostawcę. Aby wyświetlić listę dostawców dostępnych w sesji, wpiszGet-PSProvider
. Aby uzyskać więcej informacji, zobacz about_Providers.