Add-Content
Добавляет содержимое в указанные элементы, например слова в файл.
Синтаксис
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>]
Описание
Командлет Add-Content
добавляет содержимое к указанному элементу или файлу. Содержимое можно передать из конвейера или указать с помощью параметра Value .
Если вам нужно создать файлы или каталоги для следующих примеров, см . раздел "Новый элемент".
Примеры
Пример 1. Добавление строки ко всем текстовым файлам с исключением
Этот пример добавляет значение в текстовые файлы в текущем каталоге, но исключает файлы на основе их имени.
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
Параметр Path указывает все .txt
файлы в текущем каталоге, но параметр Exclude игнорирует имена файлов, которые соответствуют указанному шаблону. Параметр Value указывает текстовую строку, записанную в файлы.
Используйте get-Content для отображения содержимого этих файлов.
Пример 2. Добавление даты в конец указанных файлов
В этом примере добавляется дата к файлам в текущем каталоге и отображается дата в консоли 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
Командлет Add-Content
создает два новых файла в текущем каталоге. Параметр Value содержит выходные данные командлета Get-Date
. Параметр PassThru выводит добавленное содержимое в конвейер. Так как для получения выходных данных нет другого командлета, он отображается в консоли PowerShell. Командлет Get-Content
отображает обновленный файл. DateTimeFile1.log
Пример 3. Добавление содержимого указанного файла в другой файл
Этот пример получает содержимое из файла и сохраняет содержимое в переменной. Переменная используется для добавления содержимого в другой файл.
$From = Get-Content -Path .\CopyFromFile.txt
Add-Content -Path .\CopyToFile.txt -Value $From
Get-Content -Path .\CopyToFile.txt
- Командлет
Get-Content
получает содержимое и сохраняет содержимоеCopyFromFile.txt
в переменной$From
. - Командлет
Add-Content
обновляетCopyToFile.txt
файл с помощью содержимого переменной$From
. - Командлет
Get-Content
отображает CopyToFile.txt.
Пример 4. Добавление содержимого указанного файла в другой файл с помощью конвейера
Этот пример получает содержимое из файла и передает его командлету Add-Content
.
Get-Content -Path .\CopyFromFile.txt | Add-Content -Path .\CopyToFile.txt
Get-Content -Path .\CopyToFile.txt
Командлет Get-Content
получает содержимое CopyFromFile.txt
. Результаты передаются командлету Add-Content
, который обновляет CopyToFile.txt
.
Отображается CopyToFile.txt
последний Get-Content
командлет.
Пример 5. Создание файла и копирование содержимого
В этом примере создается новый файл и копируется содержимое существующего файла в новый файл.
Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
- Командлет
Add-Content
использует параметры Path и Value для создания нового файла в текущем каталоге. - Командлет
Get-Content
получает содержимое существующего файлаCopyFromFile.txt
и передает его параметру Value . Круглые скобки вокруг командлетаGet-Content
гарантируют, что команда завершится доAdd-Content
начала команды. - Командлет
Get-Content
отображает содержимое нового файла.NewFile.txt
Пример 6. Добавление содержимого в файл только для чтения
Эта команда добавляет значение в файл, даже если атрибут файла IsReadOnly имеет значение True. Действия по созданию файла, доступного только для чтения, включаются в пример.
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
- Командлет
New-Item
использует параметры Path и ItemType для создания файлаIsReadOnlyTextFile.txt
в текущем каталоге. - Командлет
Set-ItemProperty
использует параметры Name и Value для изменения свойства IsReadOnly файла на True. - Командлет
Get-ChildItem
показывает, что файл пуст (0
) и имеет атрибут только для чтения (r
). - Командлет
Add-Content
использует параметр Path для указания файла. Параметр Value содержит текстовую строку для добавления в файл. Параметр Force записывает текст в файл только для чтения. - Командлет
Get-Content
использует параметр Path для отображения содержимого файла.
Чтобы удалить атрибут только для чтения, используйте Set-ItemProperty
команду со значением False
параметра Value.
Пример 7. Использование фильтров с контентом надстройки
Для командлета Add-Content
можно указать фильтр. При использовании фильтров для квалификации параметра Path необходимо включить конечную звездочку (*
), чтобы указать содержимое пути.
Следующая команда добавляет слово "Готово" содержимое всех *.txt
файлов в каталоге C:\Temp
.
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
Параметры
-AsByteStream
Указывает, что содержимое должно читаться как поток байтов. Этот параметр появился в PowerShell 6.0.
Предупреждение возникает при использовании параметра AsByteStream с параметром кодировки. Параметр AsByteStream игнорирует любую кодировку, а выходные данные возвращаются в виде потока байтов.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Confirm
Запрос подтверждения перед выполнением командлета.
Тип: | SwitchParameter |
Aliases: | cf |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Credential
Примечание.
Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.
Тип: | PSCredential |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-Encoding
Указывает тип кодировки для целевого файла. Значение по умолчанию — utf8NoBOM
.
Кодировка — это динамический параметр, который поставщик FileSystem добавляет в Add-Content
командлет. Этот параметр работает только на дисках с файловой системой.
Допустимые значения для этого параметра приведены следующим образом:
ascii
: использует кодировку для набора символов ASCII (7-разрядная версия).ansi
: использует кодировку для кодовой страницы ANSI текущего языка и региональных параметров. Этот параметр добавлен в PowerShell 7.4.bigendianunicode
: кодирует в формате UTF-16 с помощью порядка байтов больших байтов.bigendianutf32
: кодирует в формате UTF-32 с помощью порядка байтов больших байтов.oem
: использует кодировку по умолчанию для программ MS-DOS и консольных программ.unicode
: кодирует в формате UTF-16 с помощью байтового порядка байтов.utf7
: кодирует в формате UTF-7.utf8
: кодирует в формате UTF-8.utf8BOM
: кодирует в формате UTF-8 с меткой порядка байтов (BOM)utf8NoBOM
: кодирует в формате UTF-8 без метки порядка байтов (BOM)utf32
: кодирует в формате UTF-32.
Начиная с PowerShell 6.2, параметр кодирования также позволяет числовым идентификаторам зарегистрированных кодовых страниц (например) или строковым именам зарегистрированных кодовых страниц (например-Encoding "windows-1251"
-Encoding 1251
). Дополнительные сведения см. в документации по .NET для Encoding.CodePage.
Начиная с PowerShell 7.4, можно использовать Ansi
значение параметра кодировки для передачи числового идентификатора для кодовой страницы ANSI текущего языка и региональных параметров без необходимости указывать его вручную.
Примечание.
UTF-7* больше не рекомендуется использовать. По состоянию на PowerShell 7.1 предупреждение записывается при указании utf7
параметра кодирования .
Тип: | Encoding |
Допустимые значения: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Position: | Named |
Default value: | UTF8NoBOM |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Exclude
Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt
. Можно использовать подстановочные знаки. Параметр Exclude действует только в том случае, если команда включает содержимое элемента, напримерC:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Filter
Указывает фильтр для квалификации параметра Path . Поставщик FileSystem — единственный установленный поставщик PowerShell, поддерживающий использование фильтров. Синтаксис языка фильтра FileSystem можно найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, так как поставщик применяет их, когда командлет получает объекты, а не фильтрует объекты после их получения.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-Force
Переопределяет атрибут «только для чтения», позволяя добавлять содержимое в файл, доступный только для чтения. Например, принудительно переопределяет атрибут только для чтения, но не изменяет разрешения файла.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Include
Указывает, как строковый массив, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например "*.txt"
. Можно использовать подстановочные знаки. Параметр Include действует только в том случае, если команда содержит содержимое элемента, например C:\Windows\*
, где подстановочный знак указывает содержимое C:\Windows
каталога.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | True |
-LiteralPath
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так же, как оно типизированно. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки говорят PowerShell не интерпретировать какие-либо символы как escape-последовательности.
Дополнительные сведения см. в about_Quoting_Rules.
Тип: | String[] |
Aliases: | PSPath, LP |
Position: | Named |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-NoNewline
Указывает, что этот командлет не добавляет новую строку или каретки в содержимое.
Строковые представления входных объектов объединяются для формирования выходных данных. Пробелы или новые строки не вставляются между выходными строками. Новая строка не добавляется после последней выходной строки.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-PassThru
Возвращает объект, представляющий добавленное содержимое. По умолчанию этот командлет не создает выходные данные.
Тип: | SwitchParameter |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Path
Указывает путь к элементам, которые получают дополнительное содержимое. Можно использовать подстановочные знаки. Пути должны вести к элементам, а не к контейнерам. Например, нужно указать путь к одному или нескольким файлам, а не путь к каталогу. Если нужно указать несколько путей, разделите их запятыми.
Тип: | String[] |
Position: | 0 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | True |
-Stream
Примечание.
Этот параметр доступен только в Windows.
Задает альтернативный поток данных для содержимого. Если поток не существует, этот командлет создает его. Подстановочные знаки не поддерживаются.
Stream — это динамический параметр, в Add-Content
который добавляется поставщик FileSystem. Этот параметр работает только на дисках с файловой системой.
С помощью командлета Add-Content
можно изменить содержимое любого альтернативного потока данных, например Zone.Identifier
. Однако мы не рекомендуем это сделать так, чтобы исключить проверку безопасности, которая блокирует файлы, скачанные из Интернета. Если вы убедитесь, что скачанный файл является безопасным, используйте Unblock-File
командлет.
Этот параметр появился в PowerShell 3.0. По состоянию на PowerShell 7.2 можно использовать альтернативные потоки данных как в файлах, Add-Content
так и в каталогах.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-Value
Задает добавляемое содержимое. Введите в кавычки строку, например данные для внутреннего использования, или укажите объект, содержащий содержимое, например объект DateTime , Get-Date
который создает.
Невозможно указать содержимое файла, введя его путь, так как путь — это только строка.
Вы можете использовать команду, чтобы получить содержимое Get-Content
и передать его параметру Value .
Тип: | Object[] |
Position: | 1 |
Default value: | None |
Обязательно: | True |
Принять входные данные конвейера: | True |
Принять подстановочные знаки: | False |
-WhatIf
Показывает, что произойдет при запуске командлета. Командлет не выполняется.
Тип: | SwitchParameter |
Aliases: | wi |
Position: | Named |
Default value: | False |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
Можно передать значения Add-Content
в .
Вы можете передать учетные Add-Content
данные в .
Выходные данные
None
По умолчанию этот командлет не возвращает выходные данные.
При использовании параметра PassThru этот командлет возвращает объект System.String , представляющий содержимое.
Примечания
PowerShell включает следующие псевдонимы для Add-Content
:
Windows:
ac
При отправке объекта в объект
Add-Content
объект преобразуется в строку перед добавлением в элемент. Формат строки определяется типом объекта, но может отличаться от используемого по умолчанию формата отображения объекта. Для управления форматом строки используйте параметры форматирования отправляющего командлета.Командлет
Add-Content
предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлетGet-PSProvider
. Дополнительные сведения см. в about_Providers.
Связанные ссылки
PowerShell