Add-Content
Добавляет содержимое в указанные элементы, например добавление слов в файл.
Синтаксис
Path (По умолчанию)
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>]
LiteralPath
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 добавляет содержимое к указанному элементу или файлу. Содержимое можно передать из конвейера или указать, используя параметр значения.
Если вам нужно создать файлы или каталоги для следующих примеров, см. New-Item.
Примеры
Пример 1. Добавление строки ко всем текстовым файлам с исключением
Этот пример добавляет значение в текстовые файлы в текущем каталоге, но исключает файлы на основе их имени.
Add-Content -Path .\*.txt -Exclude help* -Value 'End of file'
Параметр пути указывает все файлы .txt в текущем каталоге, но параметр исключения игнорирует имена файлов, соответствующие указанному шаблону. Параметр задает текстовую строку, которая записывается в файлы.
Используйте 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.
Пример 7. Использование фильтров с Add-Content
Фильтр можно указать в командлете Add-Content. При использовании фильтров для указания параметра пути необходимо добавить конечную звездочку (*), чтобы указать содержимое пути.
Следующая команда добавляет слово "Готово" в содержимое всех *.txt файлов в каталоге C:\Temp.
Add-Content -Path C:\Temp\* -Filter *.txt -Value "Done"
Параметры
-AsByteStream
Указывает, что содержимое должно читаться как поток байтов. Этот параметр появился в PowerShell 6.0.
Предупреждение возникает при использовании параметра AsByteStream с параметром Encoding. Параметр AsByteStream игнорирует любую кодировку, а выходные данные возвращаются в виде потока байтов.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | 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
Указывает тип кодирования для целевого файла. Значение по умолчанию — 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 с пометкой порядка байтов (Byte Order Mark, BOM) -
utf8NoBOM: Кодирует в формате UTF-8 без метки порядка байтов (BOM) -
utf32: кодирует в формате UTF-32.
Начиная с PowerShell 6.2, параметр кодировки
Начиная с PowerShell 7.4, можно использовать значение Ansi для параметра кодировки, чтобы передать числовой идентификатор ANSI-страницы текущей культуры, не указывая его вручную.
Замечание
UTF-7* больше не рекомендуется использовать. Начиная с версии PowerShell 7.1, выводится предупреждение, если задать utf7 как параметр кодировки.
Свойства параметров
| Тип: | Encoding |
| Default value: | UTF8NoBOM |
| Допустимые значения: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM, Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, 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, LP |
Наборы параметров
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
Замечание
Этот параметр доступен только в Windows.
Задает альтернативный поток данных для содержимого. Если поток не существует, этот командлет создает его. Подстановочные знаки не поддерживаются.
Stream — это динамический параметр, который поставщик FileSystem добавляет в Add-Content. Этот параметр работает только на дисках файловой системы.
Командлет Add-Content можно использовать для изменения содержимого любого альтернативного потока данных, например Zone.Identifier. Однако мы не рекомендуем это сделать так, чтобы исключить проверку безопасности, которая блокирует файлы, скачанные из Интернета. Если убедиться, что скачанный файл является безопасным, используйте командлет Unblock-File.
Этот параметр появился в PowerShell 3.0. По состоянию на PowerShell 7.2 Add-Content может использовать альтернативные потоки данных как в файлах, так и в каталогах.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(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, представляющий содержимое.
Примечания
PowerShell включает следующие псевдонимы для Add-Content:
Виндоус:
ac
При отправке объекта в
Add-Contentобъект преобразуется в строку перед добавлением в элемент. Тип объекта определяет строковый формат, но формат может отличаться от отображения объекта по умолчанию. Чтобы управлять форматом строки, используйте параметры форматирования командлета отправки.Командлет
Add-Contentпредназначен для работы с данными, предоставляемыми любым провайдером. Чтобы вывести список поставщиков, доступных в сеансе, введитеGet-PSProvider. Дополнительные сведения см. в разделе о поставщиках.