Добавить строку Powershell в файл
Обновлено: 21.11.2024
Добавляет содержимое к указанным элементам, например, добавляет слова в файл.
Синтаксис
Описание
Командлет Add-Content добавляет содержимое к указанному элементу или файлу. Вы можете указать содержимое, введя его в команду или указав объект, содержащий это содержимое.
Если вам нужно создать файлы или каталоги для следующих примеров, см. New-Item.
Примеры
Пример 1. Добавление строки во все текстовые файлы с исключением
В этом примере значение добавляется к текстовым файлам в текущем каталоге, но исключаются файлы на основе их имени файла.
Параметр Path указывает все файлы .txt в текущем каталоге, но параметр Exclude игнорирует имена файлов, соответствующие указанному шаблону. Параметр Value указывает текстовую строку, которая записывается в файлы.
Используйте Get-Content для отображения содержимого этих файлов.
Пример 2. Добавление даты в конец указанных файлов
В этом примере дата добавляется к файлам в текущем каталоге и отображается в консоли PowerShell.
Командлет Add-Content создает два новых файла в текущем каталоге. Параметр Value содержит выходные данные командлета Get-Date. Параметр PassThru выводит добавленное содержимое в конвейер. Поскольку другого командлета для получения выходных данных нет, они отображаются в консоли PowerShell. Командлет Get-Content отображает обновленный файл DateTimeFile1.log .
Пример 3. Добавление содержимого указанного файла в другой файл
В этом примере содержимое извлекается из файла и сохраняется в переменной. Переменная используется для добавления содержимого в другой файл.
- Командлет Get-Content получает содержимое файла CopyFromFile.txt и сохраняет его в переменной $From.
- Командлет Add-Content обновляет файл CopyToFile.txt, используя содержимое переменной $From.
- Командлет Get-Content отображает файл CopyToFile.txt.
Пример 4. Добавление содержимого указанного файла в другой файл с помощью конвейера
В этом примере содержимое из файла передается командлету Add-Content.
Командлет Get-Content получает содержимое файла CopyFromFile.txt. Результаты передаются командлету Add-Content, который обновляет файл CopyToFile.txt. Последний командлет Get-Content отображает CopyToFile.txt .
Пример 5. Создание нового файла и копирование содержимого
В этом примере создается новый файл и копируется содержимое существующего файла в новый файл.
- Командлет Add-Content использует параметры Path и Value для создания нового файла в текущем каталоге.
- Командлет Get-Content получает содержимое существующего файла CopyFromFile.txt и передает его параметру Value. Круглые скобки вокруг командлета Get-Content гарантируют, что команда завершится до начала команды Add-Content.
- Командлет Get-Content отображает содержимое нового файла NewFile.txt.
Пример 6. Добавление содержимого в файл, доступный только для чтения
Эта команда добавляет значение в файл, даже если для атрибута файла IsReadOnly установлено значение True. Шаги по созданию файла только для чтения включены в пример.
- Командлет 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 .
Пример 7. Использование фильтров с дополнительным содержанием
Вы можете указать фильтр для командлета Add-Content. При использовании фильтров для уточнения параметра Path необходимо добавить завершающую звездочку ( * ), чтобы указать содержимое пути.
Следующая команда добавляет слово "Готово" к содержимому всех файлов *.txt в каталоге C:\Temp.
Параметры
Указывает, что содержимое должно считываться как поток байтов. Этот параметр появился в PowerShell 6.0.
При использовании параметра AsByteStream с параметром Encoding появляется предупреждение. Параметр AsByteStream игнорирует любую кодировку, и выходные данные возвращаются в виде потока байтов.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Запрашивает подтверждение перед запуском командлета.
Тип: | SwitchParameter | |||
Псевдонимы: | cf | |||
Позиция: | Имя | |||
Значение по умолчанию: | False | < /tr>|||
Принимать ввод конвейера: | False | |||
Допускать подстановочные знаки: | False |
Тип: | PSCredential |
Позиция: | Имя |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | Истина | tr>
Допускать подстановочные знаки: | False |
Указывает тип кодировки для целевого файла. Значение по умолчанию — utf8NoBOM .
Кодировка — это динамический параметр, который поставщик FileSystem добавляет в командлет Add-Content. Этот параметр работает только на дисках с файловой системой.
Для этого параметра допустимы следующие значения:
- ascii : использует кодировку для набора символов ASCII (7-бит).
- 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.
UTF-7* больше не рекомендуется использовать. Начиная с PowerShell 7.1, выдается предупреждение, если вы укажете utf7 для параметра Encoding.
Тип: | Кодировка |
Допустимые значения: | ASCII, BigEndianUnicode, BigEndianUTF32, OEM , Unicode, UTF7, UTF8, UTF8BOM, UTF8NoBOM, UTF32 |
Позиция: | По имени |
Значение по умолчанию: | UTF8NoBOM |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Указывает в виде массива строк элемент или элементы, которые этот командлет исключает из операции. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например *.txt . Подстановочные знаки разрешены. Параметр Exclude действует, только если команда включает содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое каталога C:\Windows.
Тип: | Строка [ ] |
Позиция: | Название td> |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False< /td> |
Допускать подстановочные знаки: | True |
Указывает фильтр для уточнения параметра Path. Поставщик FileSystem — это единственный установленный поставщик PowerShell, который поддерживает использование фильтров. Вы можете найти синтаксис языка фильтров файловой системы в about_Wildcards. Фильтры более эффективны, чем другие параметры, потому что поставщик применяет их, когда командлет получает объекты, а не PowerShell фильтрует объекты после их извлечения.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | True |
Переопределяет атрибут только для чтения, позволяя добавлять содержимое в файл, доступный только для чтения. Например, Force переопределяет атрибут только для чтения, но не изменяет права доступа к файлам.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Указывает в виде массива строк элемент или элементы, которые этот командлет включает в операцию. Значение этого параметра определяет параметр Path. Введите элемент пути или шаблон, например "*.txt" . Подстановочные знаки разрешены. Параметр Include действует, только если команда включает содержимое элемента, например C:\Windows\* , где подстановочный знак указывает содержимое каталога C:\Windows.
Тип: | Строка [ ] |
Позиция: | Название td> |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False< /td> |
Допускать подстановочные знаки: | True |
Указывает путь к одному или нескольким расположениям. Значение LiteralPath используется точно так, как оно введено. Никакие символы не интерпретируются как подстановочные знаки. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки сообщают PowerShell, что никакие символы не следует интерпретировать как управляющие последовательности.
Тип: | String [ ] |
Псевдонимы: | PSPath, LP |
Позиция: | Имя |
Значение по умолчанию: | Нет< /td> |
Принимать ввод конвейера: | True |
Допускать подстановочные знаки: | Ложь |
Указывает, что этот командлет не добавляет к содержимому новую строку или возврат каретки.
Строковые представления входных объектов объединяются для формирования выходных данных. Между выходными строками не вставляются пробелы или символы новой строки. После последней выходной строки новая строка не добавляется.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Возвращает объект, представляющий добавленный контент. По умолчанию этот командлет не создает никаких выходных данных.
Тип: | SwitchParameter |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Указывает путь к элементам, которые получают дополнительное содержимое. Подстановочные знаки разрешены. Пути должны быть путями к элементам, а не к контейнерам. Например, вы должны указать путь к одному или нескольким файлам, а не путь к каталогу. Если вы указываете несколько путей, разделяйте пути запятыми.
Тип: | Строка [ ] |
Позиция: | 0 td> |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | True< /td> |
Допускать подстановочные знаки: | True |
Этот параметр доступен только в Windows.
Указывает альтернативный поток данных для содержания. Если поток не существует, этот командлет создает его. Подстановочные знаки не поддерживаются.
Поток — это динамический параметр, который поставщик файловой системы добавляет в Add-Content . Этот параметр работает только на дисках с файловой системой.
Командлет Add-Content можно использовать для изменения содержимого любого альтернативного потока данных, например Zone.Identifier . Однако мы не рекомендуем это как способ устранения проверок безопасности, которые блокируют файлы, загружаемые из Интернета. Если вы убедитесь, что загруженный файл безопасен, используйте командлет Unblock-File.
Этот параметр появился в PowerShell 3.0. Начиная с PowerShell 7.2, Add-Content может нацеливаться на альтернативные потоки данных как в файлах, так и в каталогах.
Тип: | Строка |
Позиция: | Именованный |
Значение по умолчанию: | Нет |
Принять ввод конвейера: | False |
Допускать подстановочные знаки: | False |
Определяет добавляемое содержимое. Введите строку в кавычках, например "Эти данные предназначены только для внутреннего использования", или укажите объект, содержащий содержимое, например объект DateTime, создаваемый командлетом Get-Date.
Вы не можете указать содержимое файла, введя его путь, потому что путь — это просто строка. Вы можете использовать команду Get-Content, чтобы получить содержимое и передать его параметру Value.
При работе с файлами в PowerShell нам приходится добавлять текст в файл с помощью PowerShell, например добавлять текст в конец файла, добавлять строку в файл, добавлять содержимое из другого файла или добавлять DateTime в конец файла. р>
Командлет Add-Content в PowerShell для добавления содержимого в файл. Вы можете указать содержимое с помощью команды content или с помощью Get-Content, чтобы получить содержимое файла для добавления. С помощью командлета Add-Content он добавляет к файлу текст или строку.
В этом сообщении блога я объясню PowerShell Add-Content с различными примерами добавления содержимого в файл.
Давайте попрактикуемся с примерами добавления содержимого PowerShell.
Синтаксис добавления контента
Командлет Add-Content в PowerShell добавляет содержимое в файл, например текст в файл.
Добавить текст в файл с помощью Add-Content
Давайте рассмотрим пример, у нас есть файл Get-DateFile.txt в каталоге.
Давайте добавим данные в текстовый файл с помощью PowerShell, создадим новый файл с именем Get-DateFile.txt и добавьте в него данные.
PowerShell создает новый файл с данными
В приведенном выше примере командлет Add-Content добавляет текстовые данные «Конец файла» в конец файла, указанного параметром «Путь», в текущем каталоге.
Вывод после добавления данных в файл:
Добавить текст в файл с помощью PowerShell
Добавить данные в текстовый файл с новой строки
Чтобы добавить данные в текстовый файл на новой строке, используйте `n ( новая строка PowerShell).
Учитывая приведенный выше пример, чтобы добавить текст в файл на новой строке, используйте
В приведенном выше сценарии PowerShell мы использовали `n для добавления новой строки PowerShell перед текстом. Он запишет строку в файл на новой строке.
Вывод приведенного выше скрипта:
Добавить содержимое к следующей строке файла
Добавить дату и время в конец файла
С помощью командлета Add-Content в PowerShell вы можете добавить DateTime в конец файла, как показано ниже
В приведенном выше примере Add-Content добавляет дату и время к текстовому файлу, указанному параметром Path. Параметр Value указывает строку, записываемую в файл.
Добавить содержимое одного файла в другой файл
Если вы хотите добавить содержимое одного файла к другому файлу, это легко сделать с помощью командлета Add-Content.
Содержимое файла будет считано в переменную и с помощью Add-Content будет записано содержимое в целевой файл.
В этом примере показано, как получить содержимое из одного файла и добавить его в другой файл с помощью командлета PowerShell.
Add-Content создаст новый файл, если файл не существует при добавлении текста в файл.
В приведенном выше примере для добавления содержимого одного файла в другой файл
Командлет Get-Content в PowerShell получает содержимое файла, указанного параметром Path. Он считывает содержимое файла и сохраняет его в переменной $sourceFileContent.
Командлет Add-Content в PowerShell добавляет содержимое исходного файла, указанного в параметре Value.
Командлет Add-Content создаст новый файл, если файл не существует, и скопирует содержимое.
Добавить данные в файл только для чтения
С помощью командлета Add-Content в PowerShell он также добавляет содержимое в файл, доступный только для чтения.
Давайте разберемся, как добавлять данные в файл только для чтения на примере…
В приведенном выше примере для добавления строки в файл
Первая команда создает новый файл с помощью командлета New-Item в PowerShell.
Командлет Set-ItemProperty в PowerShell, чтобы задать для свойства IsReadOnly значение true для указанного файла
Командлет Get-ChildItem в PowerShell позволяет получить указанные сведения о файле, такие как режим, LastWriteTime, длина и имя
Командлет Add-Content добавляет строку в доступный только для чтения файл, указанный параметром Path.
Вывод приведенного выше скрипта для добавления строки в файл только для чтения:
Add-Content добавляет текст в файл, доступный только для чтения
Полезный совет: как использовать Clear-Content для очистки содержимого текстового файла в PowerShell!
Заключение
Я надеюсь, что вышеприведенная запись в блоге о добавлении содержимого для добавления текста в файл будет вам полезна.
Командлет Add-Content в PowerShell добавляет несколько строк из другого файла в исходный файл, добавляет DateTime в конец файла, добавляет текст в файл, доступный только для чтения.
Дополнительные темы о командах PowerShell Active Directory и основах PowerShell можно найти на домашней странице ShellGeek.
Одной из наиболее недооцененных возможностей любого языка программирования является аспект ввода-вывода или механизм обработки файлов. Точно так же в Add-Content в PowerShell есть немного содержимого, которое помогает записать вывод в файл или создать новый файл или добавить в существующий файл. Одним из таких материалов является Add-Content, о котором мы подробно расскажем в этой статье.
Синтаксис: Самый простой и простой из них получается из команды help.
Hadoop, наука о данных, статистика и др.
Ввод: Get-Help Add-Content
Вывод:
Параметры добавления контента в PowerShell
Ниже приведены пояснения некоторых параметров:
<р>1. Путь: это относится к пути, по которому находится файл. Это обязательный параметр для запуска командлета. Подстановочные знаки принимаются. Значение по умолчанию — none, а его тип — строка.
<р>2. Значение: это относится к содержимому, которое будет добавлено. Это обязательный параметр для запуска командлета. Подстановочные знаки не принимаются. Значение по умолчанию — none, а его тип — объект. <р>3. Кодировка: этот параметр используется для обозначения кодировки файла, это необязательный параметр. Значение по умолчанию для этого ASCII. Подстановочные знаки не принимаются. <р>4. Force: Это также необязательный параметр. Значение по умолчанию для этого — false. Это требуется только для предотвращения добавления содержимого в файлы, доступные только для чтения. Подстановочные знаки не принимаются. Его тип — переключатель.Обучение языкам программирования (41 курс, более 13 проектов, 4 викторины) 41 онлайн-курс | 13 практических проектов | 322+ часа | Поддающийся проверке сертификат об окончании | Пожизненный доступ | 4 теста с решениями
4,5 (8 557 оценок)
Пример синтаксиса
Добавить-контент «путь к файлу» «Контент»
Например. Add-Content C:\testfolder\test.txt «добавление контента»
Приведенный выше командлет добавляет содержимое, указанное в тестовый файл, если он существует, в противном случае он автоматически создает файл и добавляет в него содержимое.
Примеры добавления содержимого в PowerShell
Ниже приведены некоторые из примеров –
Ввод: Add-Content-Path *. -Значение "TestAppend"
Вывод:
Приведенная выше команда добавит значение «тестовое добавление» ко всем текстовым файлам в текущей папке. Чтобы изменить расположение папки, выполните приведенную ниже команду
Set-Location -Path "путь к каталогу"
Ввод: Add-Content D:\test\test1\test2.txt ‘example!’
Вывод:
Приведенная выше команда добавит содержимое в файл test2.
Ввод: Add-Content 'C:\Vignesh\append.txt' "date! $(Get-Date)"
Вывод:
В приведенном выше примере текущая дата и время добавляются к файлу.
Ввод: Add-Content -Path a.txt, b.txt -Value (get-date)
Вывод:
Приведенный выше командлет добавляет текущую дату и время в текстовые файлы.
Ввод: Get-Content c:\source.txt | Добавить содержимое D:\dest.txt
Вывод:
Приведенный выше командлет добавляет содержимое из файла dest.txt в файл source.txt
Ввод: Add-Content -Path source.txt -Value (Get-Content c:\destination.txt)
Вывод:
Приведенный выше контент сначала извлекается из файла destination.txt с помощью команды get-content. Затем это значение передается для добавления в файл source.txt.
Ввод: Add-Content C:\vignesh\append.txt "`nLine1"
Add-Content C:\vignesh\append.txt "`nLine2"
Add-Content C:\vignesh \append.txt "`nLine3"
Добавить содержимое C:\vignesh\append.txt "`nLine4"
Вывод:
В приведенном выше примере вывод будет записываться каждый раз в новой строке из-за последовательности.
Чтобы включить пространство табуляции в выводимый контент, используется «`t»
Ввод: Add-Content C:\vignesh\append.txt "`nsname`tm1`tm2`tm3"
Add-Content C:\vignesh\append.txt "`ns1`t4`t32`t28 "
Добавить содержимое C:\vignesh\append.txt "`ns2`t3`t50`t15"
Добавить содержимое C:\vignesh\append.txt "`ns3`t12`t13`t84 "
Вывод:
Ввод: Add-Content -Value (Get-Content test.txt) -путь C:\ram\test134.txt
Вывод:
В приведенном выше примере сначала значение get-content получается путем чтения файла test.txt. Это значение передается в test134.txt. Папка ram не существует, она создается на лету.
Также можно использовать Add-content для записи контента в CSV-файл. Ниже приведен пример создания CSV-файла.
Ввод:
Add-Content -Path C:\studentreport.csv -Value '"Name","Subject1","Subject2","subject3","Total"'
$students = @(
'"баран",10,20,30,60'
'"мария",40,50,60,150'
'"питер",30,30,30,90'
' "Джон",30,30,30,90'
'"Элизабет",30,30,30,90'
'"Джон",40,50,60,150'
'" Шив",40,50,60,150'
)
$students | foreach
Вывод:
Будет создан CSV-файл с содержимым, как показано ниже
Имя | Тема1 | Тема2 | тема3 | Всего |
RAM td> | 10 | 20 | 30 | 60 |
мэри | 40 | 50 | 60 | 150 |
питер | 30 | 30 | 30 | 90 | tr>
Джон | 30 | 30 | 30 | 90 |
Элизабет | 30< /td> | 30 | 30 | 90 |
40 | 50 | 60 | 150 | |
Шив | 40 | 50 | 60 | 150 |
Заключение
Добавить содержимое полезно, когда пользователю необходимо выполнять простые файловые операции с несколькими файлами одновременно. Это уменьшает необходимость ручной работы, и иногда вместо того, чтобы вручную проверять, существует ли файл, надстройка позаботится о создании файла, если он не существует.
Рекомендуемые статьи
Это руководство по добавлению содержимого в PowerShell. Здесь мы обсуждаем введение, параметры добавления содержимого в PowerShell и примеры, а также входные и выходные данные. Вы также можете просмотреть другие предлагаемые нами статьи, чтобы узнать больше—
Здравствуйте, мне нужна помощь с дополнительной пустой строкой, которую этот код создает в моем конфигурационном файле. Сценарий проверяет каждую строку и, если есть совпадение, обновляет значение. Если совпадения нет, он должен создать новую строку. в конце файла. Но он создается с пустой строкой. Не могли бы вы помочь, как я могу это исправить?
В этом примере следует добавить rdisp/wp_no_btc = 4 в конце строки.
Максимальное использование гиперконвергентной инфраструктуры
2022-03-22 18:00:00 Веб-семинар UTC Веб-семинар: Dell — максимально эффективное использование гиперконвергентной инфраструктуры Сведения о событии Просмотреть все события
2 ответа
fids74gf
Используйте "-NoNewline" с Add-content, после чего вы сможете контролировать, где новые строки добавляются к содержимому
`n перед "`nrdisp/wp_no_btc = 4" создает перед ним пустую строку, если я правильно понимаю вашу проблему.
Также не связано, но вы можете изучить оператор Switch, чтобы заменить операторы if/elsif. Кроме того, поскольку "Add-Content -Value $line -Path $PathToTempDEFAULTProfile" повторяется каждый раз, вы можете просто переместить его за пределы проверки
Эта тема заблокирована администратором и больше не открыта для комментариев.
Чтобы продолжить это обсуждение, задайте новый вопрос.
Щелкни! Обновление Linux, Паролей больше нет?, Атаки BitB, Juno Pictures, Новый лед
Ваша ежедневная доза технических новостей. Вы должны это услышать. линукс 5.Прибытие 17: Вот что внутри Торвальдс и его команда снова обновили ядро Linux после некоторых трудных времен из-за некоторых изменений в последнюю минуту. Работа начинается на n.
Удобные наушники для работы из дома — чтобы слышать шум, но не передавать его
Поскольку все больше и больше людей работают из дома, требования к функциям гарнитур немного изменились. Теперь многим людям не нужны гарнитуры, которые полностью изолируют их от окружающей среды, потому что рядом с ними может находиться ребенок, которому нужно быть собой.
Эргономичное оборудование
Кто в США должен нести ответственность за предоставление эргономичного оборудования по запросу сотрудника? Это ИТ, поскольку ИТ предоставляет клавиатуры и мыши? Должен ли это быть HR, поскольку он эргономичен и несет потенциальную ответственность, если НЕ предоставляется? Должен ли это быть тот отдел.
Приветствие Xfinity (личный домашний Интернет)
Во-первых, мне больно. Я мог бы произнести речь «Он ставит передо мной задачу», как Хан в «Звездном пути 2: Гнев Хана». Просто замените «Они» на «Он». Но они сделали то, чего я хотел годами (десятилетиями?), так что, думаю, это должно быть признано. Ю.
Щелкни! SATCOM Threat, IE End of Life, Mac с кирпичами, Planet 9, Lego Delorean
Ваша ежедневная доза технических новостей. Вы должны это услышать. ФБР и CISA предупреждают об угрозах для сетей спутниковой связи Согласно новому предупреждению ФБР и CISA спутниковые сети находятся в зоне высокого риска. Согласно ZDNet.
Читайте также:
- Файлы на рабочем столе не переименовываются
- Обзор стальной легенды Asrock z590
- Как сделать контур вырезания в coreldraw
- Может работать на 1 компьютере
- Компьютер не видит домашний кинотеатр