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


Add-Content

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

Синтаксис

Path (По умолчанию)

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>]

LiteralPath

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'

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

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

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

Add-Content -Path .\NewFile.txt -Value (Get-Content -Path .\CopyFromFile.txt)
Get-Content -Path .\NewFile.txt
  • Командлет Add-Content использует параметр пути и параметр значение для создания нового файла в текущем каталоге.
  • Командлет 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 использует параметры пути и типа элемента для создания файла IsReadOnlyTextFile.txt в текущем каталоге.
  • Командлет Set-ItemProperty использует параметры Name и Value для изменения свойства IsReadOnly на True.
  • Командлет Get-ChildItem показывает, что файл пуст (0) и имеет атрибут только для чтения (r).
  • Командлет Add-Content использует параметр Path для указания файла. Параметр значение включает текстовую строку для добавления в файл. Параметр Force записывает текст в файл только для чтения.
  • Командлет Get-Content использует параметр пути для отображения содержимого файла.

Чтобы удалить атрибут только для чтения, используйте команду Set-ItemProperty с параметром Value, равным False.

Параметры

-Confirm

Запрашивает подтверждение перед запуском cmdlet.

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:cf

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Credential

Замечание

Этот параметр не поддерживается поставщиками, установленными с помощью PowerShell. Чтобы олицетворить другого пользователя или повысить свои учетные данные при выполнении этого командлета, используйте Invoke-Command.

Свойства параметров

Тип:PSCredential
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Encoding

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

Допустимые значения для этого параметра приведены следующим образом:

  • Ascii Использует набор символов ASCII (7-разрядный).
  • BigEndianUnicode использует UTF-16 с порядком байтов "старший байт первым".
  • BigEndianUTF32 использует UTF-32 с порядком старшего байта впереди.
  • Byte кодирует набор символов в последовательность байтов.
  • Default Использует кодировку, соответствующую активной кодовой странице системы (обычно ANSI).
  • Oem Использует кодировку, соответствующую текущей кодовой странице OEM системы.
  • String То же, что и Юникод.
  • Unicode использует UTF-16 с младшим порядком байтов.
  • Unknown То же, что и Юникод.
  • UTF7 использует UTF-7.
  • UTF8 Использует UTF-8.
  • UTF32 использует UTF-32 с маленьким порядком байтов.

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

Свойства параметров

Тип:FileSystemCmdletProviderEncoding
Default value:Default
Допустимые значения:ASCII, BigEndianUnicode, BigEndianUTF32, Byte, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Exclude

Указывает как строковый массив, элемент или элементы, которые этот командлет исключает в операции. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например *.txt. Разрешено использование подстановочных символов. Параметр Исключить действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Filter

Указывает фильтр для квалификации параметра Path. Поставщик файловой системы является единственным установленным поставщиком PowerShell, который поддерживает использование фильтров. Синтаксис языка фильтрации файловой системы вы можете найти в about_Wildcards. Фильтры более эффективны, чем другие параметры, поскольку поставщик применяет их, когда командлет получает объекты, а не когда PowerShell фильтрует объекты после их получения.

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Force

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Include

Указывает, как строковый массив, элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра квалифифициирует параметр Path. Введите элемент пути или шаблон, например "*.txt". Разрешено использование подстановочных символов. Параметр Include действует только в том случае, если команда включает содержимое элемента, например C:\Windows\*, где подстановочный знак указывает содержимое каталога C:\Windows.

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-LiteralPath

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

Дополнительную информацию см. в разделе about_Quoting_Rules.

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:PSPath

Наборы параметров

LiteralPath
Position:Named
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-NoNewline

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

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-PassThru

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

Свойства параметров

Тип:SwitchParameter
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Path

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

Свойства параметров

Тип:

String[]

Default value:None
Поддерживаются подстановочные знаки:True
DontShow:False

Наборы параметров

Path
Position:0
Обязательно:True
Значение из конвейера:False
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-Stream

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

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

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

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

Свойства параметров

Тип:String
Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-UseTransaction

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

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:usetx

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

-Value

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

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

Свойства параметров

Тип:

Object[]

Default value:None
Поддерживаются подстановочные знаки:False
DontShow:False

Наборы параметров

(All)
Position:1
Обязательно:True
Значение из конвейера:True
Значение из конвейера по имени свойства:True
Значение из оставшихся аргументов:False

-WhatIf

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

Свойства параметров

Тип:SwitchParameter
Default value:False
Поддерживаются подстановочные знаки:False
DontShow:False
Aliases:wi

Наборы параметров

(All)
Position:Named
Обязательно:False
Значение из конвейера:False
Значение из конвейера по имени свойства:False
Значение из оставшихся аргументов:False

CommonParameters

Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.

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

Object

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

PSCredential

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

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

None

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

String

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

Примечания

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

  • ac

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

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