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


Add-Content

Добавляет содержимое в указанные элементы, например слова в файл.

Синтаксис

Add-Content
   [-Path] <string[]>
   [-Value] <Object[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]
Add-Content
   [-Value] <Object[]>
   -LiteralPath <string[]>
   [-PassThru]
   [-Filter <string>]
   [-Include <string[]>]
   [-Exclude <string[]>]
   [-Force]
   [-Credential <pscredential>]
   [-WhatIf]
   [-Confirm]
   [-UseTransaction]
   [-NoNewline]
   [-Encoding <FileSystemCmdletProviderEncoding>]
   [-Stream <string>]
   [<CommonParameters>]

Описание

Командлет Add-Content добавляет содержимое к указанному элементу или файлу. Содержимое можно задать прямо в команде либо путем указания объекта, в котором оно хранится.

Если вам нужно создать файлы или каталоги для следующих примеров, см. раздел New-Item.

Примеры

Пример 1. Добавление строки во все текстовые файлы с исключением

В этом примере значение добавляется к текстовым файлам в текущем каталоге, но файлы исключаются на основе их имени.

Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'

Командлет Add-Content использует параметр Path для указания всех файлов .txt в текущем каталоге. Параметр Exclude игнорирует имена файлов, которые соответствуют указанному шаблону. Параметр Value указывает текстовую строку, записанную в файлы.

Используйте Get-Content для отображения содержимого этих файлов.

Пример 2. Добавление даты в конец указанных файлов

В этом примере дата добавляется к файлам в текущем каталоге и отображается в консоли PowerShell.

Add-Content -Path .\DateTimeFile1.log, .\DateTimeFile2.log -Value (Get-Date) -PassThru
Get-Content -Path .\DateTimeFile1.log

Командлет Add-Content использует параметры Path и Value для создания двух новых файлов в текущем каталоге. Параметр Value указывает Get-Date командлет для получения даты и передает ее в Add-Content. Командлет Add-Content записывает дату в каждый файл. Параметр PassThru передает объект , представляющий объект date. Так как другой командлет для получения переданного объекта отсутствует, он отображается в консоли PowerShell. Командлет Get-Content отображает обновленный файл DateTimeFile1.log.

Пример 3. Добавление содержимого указанного файла в другой файл

Этот пример получает содержимое из файла и добавляет его в другой файл.

Add-Content -Path .\CopyToFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\CopyToFile.txt

Командлет Add-Content использует параметр Path для указания нового файла в текущем каталоге, CopyToFile.txt. Параметр Value использует Get-Content командлет для получения содержимого файла CopyFromFile.txt. Круглые скобки вокруг командлета Get-Content гарантируют, что команда завершится до Add-Content начала команды. Параметр Value передается в Add-Content. Командлет Add-Content добавляет данные в файл CopyToFile.txt. Командлет Get-Content отображает обновленный файл CopyToFile.txt.

Пример 4. Добавление содержимого указанного файла в другой файл с помощью переменной

Этот пример получает содержимое из файла и сохраняет его в переменной. Переменная используется для добавления содержимого в другой файл.

$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 использует параметр Path для указания файла CopyToFile.txt в текущем каталоге. Параметр Value использует переменную $From и передает содержимое в Add-Content. Командлет Add-Content обновляет файл CopyToFile.txt. Командлет Get-Content отображает CopyToFile.txt.

Пример 5. Create нового файла и копирование содержимого

В этом примере создается новый файл и копируется содержимое существующего файла в новый файл.

Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt

Командлет Add-Content использует параметры Path и Value для создания нового файла в текущем каталоге. Параметр Value использует Get-Content командлет для получения содержимого существующего файла, CopyFromFile.txt. Круглые скобки вокруг командлета Get-Content гарантируют, что команда завершится до Add-Content начала команды. Параметр Value передает содержимое, в Add-Content которое обновляется файл NewFile.txt. Командлет 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 команду с параметром Value , равным False.

Параметры

-Confirm

Запрос подтверждения перед выполнением командлета.

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

-Credential

Указывает учетную запись пользователя с разрешением на выполнение этого действия. По умолчанию используется текущий пользователь.

Введите имя пользователя, например User01 или Domain01\User01, или введите объект PSCredential , например созданный командлетом Get-Credential . При вводе имени пользователя запрашивается пароль.

Предупреждение

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell.

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

-Encoding

Указывает тип кодировки для целевого файла. Значение по умолчанию ― Default.

Ниже приведены допустимые значения для этого параметра.

  • ASCII Использует 7-разрядную кодировку ASCII.
  • BigEndianUnicode Использует UTF-16 с порядком байтов большого байта.
  • BigEndianUTF32 Использует UTF-32 с порядком байтов большого байта.
  • Байт Кодирует набор символов в последовательность байтов.
  • По умолчанию Использует кодировку, соответствующую активной кодовой странице системы (обычно ANSI).
  • OEM Использует кодировку, соответствующую текущей кодовой странице oem системы.
  • Строка То же, что и Юникод.
  • Юникода Использует UTF-16 с порядком байтов с маленьким байтом.
  • Неизвестный То же, что и Юникод.
  • UTF7 Использует UTF-7.
  • UTF8 Использует UTF-8.
  • UTF32 Использует UTF-32 с порядком байтов с маленьким байтом.

Encoding — это динамический параметр, добавляемый поставщиком FileSystem в Add-Content командлет . Этот параметр работает только на дисках с файловой системой.

Type:FileSystemCmdletProviderEncoding
Accepted values:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Position:Named
Default value:Default
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Exclude

Исключает указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использовать подстановочные знаки.

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

-Filter

Задает фильтр в формате или на языке поставщика. Значение этого параметра определяет параметр Path. Синтаксис фильтра, включая использование подстановочных знаков, зависит от поставщика. Фильтры более эффективны, чем другие параметры, так как поставщик применяет фильтры при извлечении объектов. В противном случае PowerShell обрабатывает фильтры после извлечения объектов.

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

-Force

Переопределяет атрибут «только для чтения», позволяя добавлять содержимое в файл, доступный только для чтения. Например, параметр Force позволяет переопределить атрибут «только для чтения» или создать дополнительные каталоги в пути, не меняя разрешения на доступ к файлу.

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

-Include

Добавляет только указанные элементы. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использовать подстановочные знаки.

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

-LiteralPath

Указывает путь к элементам, которые получают дополнительное содержимое. В отличие от параметра Path, значение параметра LiteralPath используется строго в том виде, в котором оно указано. Никакие символы не интерпретируются как знаки подстановки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки предписывают PowerShell не интерпретировать какие-либо символы как escape-последовательности.

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

-NoNewline

Указывает, что этот командлет не добавляет в содержимое новую строку или каретки.

Строковые представления входных объектов объединяются для формирования выходных данных. Пробелы или новые строки не вставляются между выходными строками. После последней выходной строки новая строка не добавляется.

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

-PassThru

Возвращает объект, представляющий добавленное содержимое. По умолчанию этот командлет не создает выходные данные.

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

-Path

Указывает путь к элементам, которые получают дополнительное содержимое. Разрешено использовать подстановочные знаки. Если нужно указать несколько путей, разделите их запятыми.

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

-Stream

Задает альтернативный поток данных для содержимого. Если поток не существует, этот командлет создает его. Подстановочные знаки не поддерживаются.

Stream — это динамический параметр, добавляемый поставщиком FileSystem в Add-Content. Этот параметр работает только на дисках с файловой системой.

Командлет можно использовать для Add-Content изменения содержимого альтернативного потока данных Zone.Identifier . Тем не менее мы не рекомендуем использовать этот способ для устранения проверок безопасности, которые блокируют файлы, скачанные из Интернета. Если вы убедитесь, что скачанный файл безопасен, используйте Unblock-File командлет .

Этот параметр появился в PowerShell 3.0.

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

-UseTransaction

Включает команду в активную транзакцию. Этот параметр доступен только при выполнении транзакции. Дополнительные сведения см. в разделе about_Transactions.

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

-Value

Задает добавляемое содержимое. Введите строку в кавычках, например Данные используются только для внутреннего использования, или укажите объект, содержащий содержимое, например создаваемый объект Get-DateDateTime.

Невозможно указать содержимое файла, введя путь к нему, так как путь является просто строкой. Вы можете использовать команду , Get-Content чтобы получить содержимое и передать его в параметр Value .

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

-WhatIf

Показывает, что произойдет при запуске командлета. Командлет не выполняется.

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

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

System.Object, System.Management.Automation.PSCredential

Значения, пути или учетные данные можно передать в Set-Content.

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

None or System.String

При использовании параметра PassThru создает объект System.String, Add-Content представляющий содержимое. В противном случае командлет не формирует никаких выходных данных.

Примечания

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

Вы также можете ссылаться на его Add-Content встроенный псевдоним , ac. Подробнее см. в статье about_Aliases.

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