Если вам нужна команда PowerShell, которая может сохранить вывод в текстовый файл, у вас повезло. Вы собираетесь узнать, как использовать команду Out-File
PowerShell вместе с ее популярным параметром Out-File -Append
тоже!
Как работает Out-File?
Эта команда PowerShell проста по своей природе; ее единственная цель – сохранить полученный вывод и сохранить его в текстовом файле.
Она была разработана для замены оператора перенаправления стандартного вывода (>
). Даже еще со времен DOS мы могли перенаправлять вывод в файл. Эта команда – это способ PowerShell сделать это.
Команда Out-File
обычно используется в конце конвейера PowerShell. Ее единственная цель – отправить необработанный вывод непосредственно в текстовый файл без каких-либо ограничений. Есть минимальные способы настроить, как этот вывод записывается.
Отправка вывода в файл
Допустим, у вас есть скрипт, который возвращает список всех служб Windows на вашем компьютере. Когда вы запускаете Get-Service
, вы получите все объекты, которые можете ожидать на консоли.
Но, возможно, вам хотелось бы сохранить этот вывод в текстовый файл. Команда Out-File
– отличный способ сделать это. Вы можете использовать ее
, передав почти что угодно через конвейер.
Вы можете видеть ниже, что вывод Get-Service
был отправлен на командлет, который создал текстовый файл под названием Services.txt, содержащий точно тот же вывод, что вы видите в консоли.
Добавление в файл
По умолчанию он перезаписывает все в текстовом файле, указанном с помощью параметра FilePath
. Однако вы можете изменить это поведение, используя параметр Append
.
Возможно, вы накапливаете вывод консоли в файле и хотели бы добавлять текст в файл, а не перезаписывать его. Параметр Append
– ваш лучший друг.
Используя параметр Out-File -Append
, вы можете видеть ниже, что если вы его не используете, файл C:\File.txt будет перезаписан. Но как только вы добавите параметр Append
, вывод будет добавлен в конец файла.
Изменение вывода
По умолчанию этот командлет пытается воспроизвести то, что показано в консоли, но есть несколько способов его изменить. Например, у командлета есть параметр NoNewLine
, который просто удаляет все символы новой строки.
Или вы можете обрезать текст на каждой строке до определенного количества символов с помощью параметра Width
.
Заключение

В реальной жизни этот командлет работает, но есть лучшие способы сохранения вывода в файл.
Этот командлет не предоставляет реальных возможностей для изменения вывода. Он просто сохраняет вывод точно так, как он отображается в консоли. Этот командлет аналогичен транскрипту PowerShell, который просто пишет все напрямую в текстовый файл.
Командлеты Add-Content
или Set-Content
всегда обладают большей гибкостью, но если вам нужен быстрый способ получить вывод PowerShell в файл, то лучше использовать командлет Out-File
.