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 aktualizujeCopyToFile.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.txt
element .
Get-Content
Ostatnie polecenie cmdlet wyświetla CopyToFile.txt
polecenie .
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 plikuCopyFromFile.txt
i przekazuje go do parametru Value . Nawiasy wokółGet-Content
polecenia cmdlet zapewniają, że polecenie zakończy się przed rozpoczęciemAdd-Content
polecenia. - Polecenie
Get-Content
cmdlet 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 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 plikuIsReadOnlyTextFile.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 False
wartość .
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
Wartości potoku można przekazać do Add-Content
elementu .
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.
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-Content
obiektu 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, wpiszGet-PSProvider
. Aby uzyskać więcej informacji, zobacz about_Providers.