Out-File
Отправляет вывод в файл.
Синтаксис
Out-File [-FilePath] <string> [[-Кодирование] <string>] [-Append] [-Force] [-InputObject <psobject>] [-NoClobber] [-Width <int>] [-Confirm] [-WhatIf] [<CommonParameters>]
Описание
Командлет Out-File отправляет вывод в файл. Командлет Out-File можно использовать вместо оператора перенаправления (>), если нужно указать дополнительные данные с помощью параметров этого командлета.
Параметры
-Append
Записывает выходные данные в конец существующего файла, а не замещает его содержимое.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Кодирование <string>
Задает тип кодировки, используемой в файле. Допустимые значения: "Unicode", "UTF7", "UTF8", "UTF32", "ASCII", "BigEndianUnicode", "Default" и "OEM". По умолчанию используется кодировка "Unicode".
Значение "Default" соответствует кодировке текущей кодовой страницы ANSI.
"OEM" соответствует идентификатору кодовой страницы текущего производителя оригинального оборудования для операционной системы.
Обязательно? |
false |
Позиция? |
2 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-FilePath <string>
Задает путь к выходному файлу.
Обязательно? |
true |
Позиция? |
1 |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Force
Позволяет командлету перезаписать существующий файл, доступный только для чтения. Даже при использовании параметра Force командлет не может переопределить ограничения безопасности.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-InputObject <psobject>
Указывает объекты, которые будут записаны в файл. Введите переменную, содержащую объекты, либо получающую их команду или выражение.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
true (ByValue) |
Принимать подстановочные знаки? |
false |
-NoClobber
Не будет перезаписывать существующий файл (то есть заменять его содержимое). По умолчанию, если файл существует по указанному пути, командлет Out-File перезаписывает файл без предупреждения. Если одновременно используются параметры Append и NoClobber, выходные данные записываются в конец существующего файла.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Width <int>
Указывает число знаков в каждой выходной строке. Все остальные знаки усекаются, а не переносятся на следующую строку. Если данный параметр опущен, ширина определяется характеристиками основного приложения. Значение по умолчанию для консоли Windows PowerShell равно 80 (знаков).
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-Confirm
Запрашивает подтверждение перед выполнением команды.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
-WhatIf
Описывает, что произойдет при выполнении команды, без ее фактического выполнения.
Обязательно? |
false |
Позиция? |
named |
Значение по умолчанию |
|
Принимать входные данные из конвейера? |
false |
Принимать подстановочные знаки? |
false |
<CommonParameters>
Данный командлет поддерживает общие параметры -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer и -OutVariable. Дополнительные сведения см. в разделе about_Commonparameters.
Ввод и вывод
Входным типом является тип объектов, которые можно передавать командлету по конвейеру. Возвращаемым типом является тип объектов, возвращаемых командлетом.
Входные данные |
System.Management.Automation.PSObject Любой объект можно передать командлету Out-File по конвейеру. |
Выходные данные |
Нет Командлет Out-File не формирует никакого вывода. |
Примечания
Командлеты Out не форматируют объекты, а только обрабатывают их и отправляют в указанное назначение для отображения. Если передать неформатированный объект в командлет Out, он перед обработкой отправит его в форматирующий командлет.
Командлеты Out не содержат параметров для указания имен или путей. Для передачи данных командлетам, содержащие слово Out (командлеты Out), используйте оператор конвейера (|), чтобы передать выходные данные команды Windows PowerShell командлету. Также можно хранить данные в переменной и использовать параметр InputObject для передачи данных в командлет. Дополнительные сведения см. в примерах.
Командлет Out-File отправляет данные, но не создает никаких объектов вывода. Если передать по конвейеру вывод командлета Out-File командлету Get-Member, командлет Get-Member сообщит, что никакие объекты не указаны.
Пример 1
C:\PS>get-process | out-file -filepath C:\Test1\process.txt
Описание
-----------
Эта команда отправляет список процессов, выполняемых на компьютере, в файл Process.txt. Если этот файл не существует, командлет Out-File создаст его. Имя параметра FilePath указывать необязательно, поэтому данную команду можно переписать как "get-process | outfile C:\Test1\process.txt".
Пример 2
C:\PS>get-process | out-file C:\Test1\process.txt -noclobber
Out-File : File C:\Test1\process.txt already exists and NoClobber was specified.
At line:1 char:23
+ get-process | out-file <<<< process.txt -noclobber
Описание
-----------
Эта команда также отправляет список процессов в файл Process.txt, но в ней используется параметр NoClobber, который предотвращает перезапись существующего файла. При выполнении такой команды с параметром NoClobber для существующего файла будет выведено сообщение об ошибке.
Пример 3
C:\PS>$a = get-process
C:\PS> out-file -filepath C:\Test1\process.txt -inputobject $a -encoding ASCII -width 50
Описание
-----------
Эти команды отправляют список процессов, выполняемых на компьютере, в файл Process.txt. Текст имеет кодировку ASCII, чтобы его могли обрабатывать программы поиска, такие как Findstr и Grep. По умолчанию командлет Out-File использует формат Unicode.
Первая команда получает список процессов и сохраняет его в переменной $a. Вторая команда с помощью командлета Out-File отправляет список процессов в файл Process.txt.
Параметр InputObject указывает, что ввод хранится в переменной $a. Параметр Encoding используется для преобразования вывода в формат ASCII. Параметр Width ограничивает длину каждой строки в файле 50 знаками. Так как строки вывода после 50 знаков усекаются, самый правый столбец таблицы процессов не выводится.
Пример 4
C:\PS>set-location hklm:\software
c:\PS>get-acl mycompany\mykey | out-file -filepath c:\ps\acl.txt
c:\PS>get-acl mycompany\mykey | out-file -filepath filesystem::acl.txt
Описание
-----------
Эти команды показывают, как использовать командлет Out-File в контексте, отличном от диска FileSystem.
Первая команда делает текущим расположением раздел реестра HKLM:\Software.
Вторая и третья команды делают то же самое. Они с помощью командлета Get-Acl получают дескриптор безопасности подраздела реестра HKLM\Software\MyCompany\MyKey. Оператор конвейера передает результат командлету Out-File, который отправляет его в файл Acl.txt.
Командлет Out-File не поддерживается поставщиком реестра Windows PowerShell, поэтому в качестве значения параметра FilePath нужно указать или имя диска файловой системы (такое как "c:"), или имя поставщика с двумя двоеточиями "FileSystem::". Вторая и третья команды демонстрируют применение этих способов.
См. также
Концепции
Out-String
Out-Null
Out-Host
Out-Printer
Out-Default
Tee-Object