Поделиться через


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

Входные данные

Object

Можно передать значения Add-Contentв .

PSCredential

Вы можете передать учетные Add-Contentданные в .

Выходные данные

None

По умолчанию этот командлет не возвращает выходные данные.

String

При использовании параметра PassThru этот командлет возвращает объект System.String , представляющий содержимое.

Примечания

PowerShell включает следующие псевдонимы для Add-Content:

  • Windows:

    • ac
  • При отправке объекта в объект Add-Contentобъект преобразуется в строку перед добавлением в элемент. Формат строки определяется типом объекта, но может отличаться от используемого по умолчанию формата отображения объекта. Для управления форматом строки используйте параметры форматирования отправляющего командлета.

  • Командлет Add-Content предназначен для работы с данными, предоставляемыми любым поставщиком. Чтобы вывести список поставщиков, доступных в данном сеансе, введите командлет Get-PSProvider. Дополнительные сведения см. в about_Providers.