Вы можете использовать PowerShell add-content cmdlet для добавления данных в текстовый файл. Вот пример того, как использовать add-content PowerShell cmdlet для добавления текста в файл в Windows. Мы также объясним параметры командной строки, которые вы можете использовать.
//Активировать чит-коды
Я пытаюсь найти все строки во всех файлах PNACH в каталоге, оканчивающиеся словом codes (без учета регистра), и заменить их на это:
//<<<<<<<< Ammo Codes >>>>>>>>
//<<<<<<<< Activate Cheat Codes >>>>>>>>
//<<<<<<<< Amelia Codes >>>>>>>>
Я уже разобрался, как использовать этот сценарий ранее для исправления другой проблемы, поэтому хотел бы использовать что-то похожее для этой задачи:
$DirPath = E:\PC Emulators\PCSX2\cheats
get-childitem $DirPath -recurse -include *.pnach |
ForEach-Object { (Get-Content $_).replace(patch=1,//patch=1) | Set-Content $_
}Multiline: -match ^*codes$ -match (.+codes )(.+)
Я довольно уверен, что решение простое, но сам не могу разобраться. Буду очень признателен, если кто-то поможет мне. Спасибо 🙂

При использовании PowerShell может быть полезно записывать вывод сценария в файл, а не просто просматривать его на экране.
Например, в прошлом я создавал сложные сценарии PowerShell, которые генерируют данные журналирования при возникновении определенных событий. При запуске сценария мне не обязательно нужно видеть эти данные журналирования на экране, но иметь файл журнала может быть ценно для справки в случае неожиданных событий.
Как другой пример, я создавал сценарии PowerShell, которые собирали информацию о системе и сохраняли ее в файл. Один из них — это инструмент для проверки состояния диска, который генерирует файл, содержащий информацию о состоянии здоровья всех дисков, которые я использую.
В общем, существует множество ситуаций, когда вам может понадобиться сценарий PowerShell для создания текстового файла. Однако требуемые техники для создания сценария могут сильно отличаться в зависимости от конкретной цели, которую вы пытаетесь достичь.
Часто вам может понадобиться добавить текст в конец текстового файла с помощью PowerShell.
Метод 1: Добавление одной строки в текстовый файл
В данном примере добавляется строка, сохраненная в переменной $my_string, в конец текстового файла, указанного переменной $my_file.
Метод 2: Добавление нескольких строк в текстовый файл
В данном примере добавляются строки, сохраненные в переменных $string1, $string2 и $string3, как три новые строки в конец текстового файла, указанного переменной $my_file.
Пример 1: Как добавить одну строку в текстовый файл с помощью PowerShell
Мы можем использовать Get-Content cmdlet для просмотра содержимого этого файла:

Этот текстовый файл содержит десять строк, показывающих имена различных городов США.
Предположим, что мы хотим добавить название города Boise в конец файла.

Мы видим, что одна новая строка была добавлена в текстовый файл, содержащая Boise как название города, так как мы указали в переменной $new_city.
## Пример 2: Как добавить несколько строк в текстовый файл с помощью PowerShell

Мы видим, что три новые строки были добавлены в конец текстового файла, которые содержат названия трех городов, указанные в строковых переменных.
**Примечание**: Вы можете найти полную документацию по командлету **Add-Content** в PowerShell здесь.
## PowerShell: Как использовать Export-Csv с Append
## PowerShell: Как использовать Export-Csv без заголовков
## PowerShell: Как посчитать количество строк в файле
## Пример добавления содержимого в PowerShell
**Шаг 1.** Откройте PowerShell с повышенными привилегиями.
Add-Content c:\scripts\test.txt The End
По умолчанию данные добавляются после последнего символа. Если вы хотите добавить данные на новой строке в текстовом документе, используйте n. Некоторые другие специальные символы могут быть использованы с командлетом add-content.
Вот некоторые другие специальные символы, которые могут быть использованы с командлетом add-content.
- \`0 -- Ноль
- \`a -- Сигнал
- \`b -- Возврат на один шаг
- \`n -- Новая строка
- \`r -- Возврат каретки
- \`t -- Горизонтальная табуляция
- \` -- Одинарная кавычка
- \` -- Двойная кавычка
Посмотрите здесь, если вам нужно сначала создать каталог.
## Прикладные области в реальном мире
Хорошо, это была хорошая демонстрация, но зачем вам когда-нибудь понадобится использовать эту технику на практике? Представьте себе скрипт, который генерирует файлы журнала, где имя файла зависит от текущей даты. Скрипт начинает с создания пустого файла, а затем добавляет данные каждый раз, когда генерируется информация для журнала.
В таком скрипте вы не просто записываете статический текст в файл, как в предыдущем примере. Вместо этого скрипт использует манипуляции строками для создания равномерно отформатированных данных журнала. Это подчеркивает важный момент: при форматировании выходных данных в PowerShell вы не ограничены только конкатенацией строк; вы также можете воспользоваться escape-кодами для форматирования.
## Использование Escape-кодов для форматирования
`0 Ноль
`a Сигнал (заставляет систему издавать звук)
`b Возврат на один шаг
`n Новая линия
`t Табуляция
### **Пример: данные с табуляцией**
$String=”Data1`tData2`tData3”
$String | Out-File -FilePath ‘C:\Temp\Example.txt’
$String=”Data4`tData5`tData6”
$String | Add-Content ‘C:\Temp\Example.txt’
$String=”Data7`tData8`tData9”
$String | Add-Content ‘C:\Temp\Example.txt’
Get-Content Example.txtВ данном случае мы просто используем слова Data1 и Data4 как заполнители для фактических данных. Тем не менее, данный пример ясно показывает, что использование escape-кода `t заставляет PowerShell вставить табуляцию перед частью данных. Вы можете увидеть результат на рисунке 4.
Рисунок 4. Использование escape-кода привело к появлению данных с табуляцией.
Конечно, мы могли бы добиться того же результата, создав объект, а затем экспортируя его в текстовый файл. Однако использование управляющих символов является удобной альтернативой в ситуациях, когда вывод может значительно варьироваться, что делает использование объекта непрактичным.
Об авторе
Брайен Поузи – бестселлерный автор технической литературы, спикер и 21-кратный MVP от Microsoft. Помимо своей постоянной работы в области ИТ, Поузи прошел обучение в качестве космического астронавта-кандидата в преддверии полета на миссию по изучению полярных мезосферных облаков из космоса.
Часто задаваемые вопросы
Как я могу добавить несколько строк текста в файл с помощью PowerShell?
Вы можете использовать массив строк с Add-Content. Например:
Add-Content -Path C:\example.txt -Value Строка 1, Строка 2, Строка 3
Могу ли я добавить данные в файл, не перезаписывая существующее содержимое?
Да, Add-Content добавляет данные без перезаписи существующего содержимого в файле.
Как я могу добавить данные в файл на новой строке с помощью PowerShell?
По умолчанию Add-Content добавляет новые данные на новой строке. Если вам нужно убедиться в этом, вы можете включить символ новой строки (`n) в ваше значение.
Можно ли добавить данные из переменной в текстовый файл?
Да, вы можете добавить данные из переменной. Например:
$data = Это тест; Add-Content -Path C:\example.txt -Value $data
Как я могу добавить вывод команды PowerShell в файл?
Get-Process | Out-String | Add-Content -Path C:\processes.txt
Могу ли я добавлять данные в файл на удаленном компьютере с помощью PowerShell?
Вы можете использовать удаленное выполнение PowerShell с Invoke-Command. Пример:
Invoke-Command -ComputerName RemotePC -ScriptBlock { Add-Content -Path C:\example.txt -Value Удаленные данные }
Существует ли способ добавить данные в файл с определенной кодировкой?
Да, используйте параметр -Encoding. Например:
Add-Content -Path C:\example.txt -Value Некоторые данные -Encoding UTF8
Как я могу убедиться, что мои данные успешно добавлены?
Вы можете использовать Get-Content для просмотра содержимого файла. Например:
Get-Content -Path C:\example.txt
Есть ли ограничения на размер данных, которые я могу добавить?
PowerShell может обрабатывать большие файлы, но производительность может ухудшиться при работе с очень большими файлами. Эффективнее работать с меньшими частями данных.
Основной метод создания и добавления текстового файла
Простое создание файла
$String=Привет из PowerShell
$String | Out-File -FilePath C:\Temp\Example.txt
Рисунок 1.Я создал файл с именем example.txt и использовал командлет Get-Content для отображения содержимого файла.
Добавление к существующим файлам
Если вы хотите добавить фразу Hello World к существующему файлу, просто повторение предыдущих команд с Hello World вместо Hello from PowerShell не сработает. Если вы это сделаете, новый текст перезапишет старый текст. Это продемонстрировано на рисунке 2.
Рисунок 2. Файл был перезаписан.
Чтобы добавить новый текст в файл, вы можете использовать команду Add-Content вместо команды Out-File. Вот пример того, как вы можете создать файл и затем добавить текст к нему:
$String=“Hello from PowerShell”
$String | Out-File -FilePath ‘C:\Temp\Example.txt’
$String=“Hello World”
$String | Add-Content ‘C:\Temp\Example.txt’Рисунок 3. Я добавил строку текста к файлу.



