Out-File
Отправляет выходные данные в файл.
Синтаксис
ByPath (По умолчанию)
Out-File
[-FilePath] <string>
[[-Encoding] <string>]
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByLiteralPath
Out-File
[[-Encoding] <string>]
-LiteralPath <string>
[-Append]
[-Force]
[-NoClobber]
[-Width <int>]
[-NoNewline]
[-InputObject <psobject>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Командлет Out-File отправляет выходные данные в файл. Она неявно использует систему форматирования PowerShell для записи в файл. Файл получает то же отображаемое представление, что и терминал. Это означает, что выходные данные могут не быть идеальными для программной обработки, если только все входные объекты не являются строками.
Если необходимо указать параметры выходных данных, используйте Out-File вместо оператора перенаправления (>). Дополнительные сведения о перенаправлении см. в about_Redirection.
Примеры
Пример 1. Отправка выходных данных и создание файла
В этом примере показано, как отправить список процессов локального компьютера в файл. Если файл не существует, Out-File создает файл в указанном пути.
Get-Process | Out-File -FilePath .\Process.txt
Get-Content -Path .\Process.txt
NPM(K) PM(M) WS(M) CPU(s) Id SI ProcessName
------ ----- ----- ------ -- -- -----------
29 22.39 35.40 10.98 42764 9 Application
53 99.04 113.96 0.00 32664 0 CcmExec
27 96.62 112.43 113.00 17720 9 Code
Командлет Get-Process получает список процессов, выполняемых на локальном компьютере. Объекты process отправляются в конвейер в командлет Out-File.
Out-File использует параметр FilePath и создает файл в текущем каталоге с именем Process.txt. Команда Get-Content получает содержимое из файла и отображает его в консоли PowerShell.
Пример 2. Предотвращение перезаписи существующего файла
Этот пример предотвращает перезапись существующего файла. По умолчанию Out-File перезаписывает существующие файлы.
Get-Process | Out-File -FilePath .\Process.txt -NoClobber
Out-File : The file 'C:\Test\Process.txt' already exists.
At line:1 char:15
+ Get-Process | Out-File -FilePath .\Process.txt -NoClobber
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Командлет Get-Process получает список процессов, выполняемых на локальном компьютере. Объекты process отправляются в конвейер в командлет Out-File.
Out-File использует параметр FilePath и пытается записать в файл в текущем каталоге с именем Process.txt. Параметр NoClobber запрещает перезаписывать файл и отображает сообщение о том, что файл уже существует.
Пример 3. Отправка выходных данных в файл в формате ASCII
В этом примере показано, как кодировать выходные данные с определенным типом кодирования.
$Procs = Get-Process
Out-File -FilePath .\Process.txt -InputObject $Procs -Encoding ascii -Width 50
Командлет Get-Process получает список процессов, выполняемых на локальном компьютере. Объекты процесса хранятся в переменной $Procs.
Out-File использует параметр FilePath и создает файл в текущем каталоге с именем Process.txt. Параметр inputObject передает объекты процесса в $Procs в файл Process.txt. Параметр кодировки преобразует выходные данные в формат ASCII. Параметр Width ограничивает каждую строку в файле до 50 символов, чтобы некоторые данные могли быть усечены.
Пример 4. Использование поставщика и отправка выходных данных в файл
В этом примере показано, как использовать командлет Out-File, если вы не используете диск поставщика FileSystem. Используйте командлет Get-PSProvider для просмотра поставщиков на локальном компьютере. Дополнительные сведения см. в разделе о поставщиках.
PS> Set-Location -Path Alias:
PS> Get-Location
Path
----
Alias:\
PS> Get-ChildItem | Out-File -FilePath C:\TestDir\AliasNames.txt
PS> Get-Content -Path C:\TestDir\AliasNames.txt
CommandType Name
----------- ----
Alias % -> ForEach-Object
Alias ? -> Where-Object
Alias ac -> Add-Content
Alias cat -> Get-Content
Команда Set-Location использует параметр пути, чтобы задать текущее расположение поставщику реестра Alias:. Командлет Get-Location отображает полный путь для Alias:.
Get-ChildItem отправляет объекты вниз конвейера в командлет Out-File.
Out-File использует параметр FilePath, чтобы указать полный путь и имя файла для выходных данных, C:\TestDir\AliasNames.txt. Командлет Get-Content использует параметр пути и отображает содержимое файла в консоли PowerShell.
Пример 5. Настройка ширины выходных данных файла для всей области
В этом примере используется $PSDefaultParameterValues, чтобы задать параметр Width для всех вызовов Out-File и операторов перенаправления (> и >>) значение 2000. Это гарантирует, что везде в текущей области, в которую вы выводите форматированные данные таблицы в файл, PowerShell использует ширину строки 2000 вместо ширины строки, определенной шириной консоли узла PowerShell.
function DemoDefaultOutFileWidth() {
try {
$PSDefaultParameterValues['Out-File:Width'] = 2000
$logFile = "$PWD\logfile.txt"
Get-ChildItem Env:\ > $logFile
Get-Service -ErrorAction Ignore |
Format-Table -AutoSize |
Out-File $logFile -Append
Get-Process | Format-Table Id,SI,Name,Path,MainWindowTitle >> $logFile
}
finally {
$PSDefaultParameterValues.Remove('Out-File:Width')
}
}
DemoDefaultOutFileWidth
Дополнительные сведения о $PSDefaultParameterValuesсм. в about_Preference_Variables.
Параметры
-Append
Добавляет выходные данные в конец существующего файла. Если кодировка не указана, командлет использует кодировку по умолчанию. Эта кодировка может не совпадать с кодировкой целевого файла. Это то же поведение, что и оператор перенаправления (>>).
Свойства параметров
| Тип: | 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 |
-Encoding
Указывает тип кодирования для целевого файла. Значение по умолчанию — unicode.
Допустимые значения для этого параметра приведены следующим образом:
-
asciiИспользует набор символов ASCII (7-разрядный). -
bigendianunicodeиспользует UTF-16 с порядком байтов "старший байт первым". -
defaultИспользует кодировку, соответствующую активной кодовой странице системы (обычно ANSI). -
oemИспользует кодировку, соответствующую текущей кодовой странице OEM системы. -
stringТо же, что иunicode. -
unicodeиспользует UTF-16 с младшим порядком байтов. -
unknownТо же, что иunicode. -
utf7использует UTF-7. -
utf8Использует UTF-8. -
utf32использует UTF-32 с маленьким порядком байтов.
Свойства параметров
| Тип: | String |
| Default value: | Unicode |
| Допустимые значения: | ASCII, BigEndianUnicode, Default, OEM, String, Unicode, Unknown, UTF7, UTF8, UTF32 |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | 1 |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-FilePath
Указывает путь к выходному файлу.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
ByPath
| Position: | 0 |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Force
Переопределяет атрибут только для чтения и перезаписывает существующий файл только для чтения. Параметр Force не переопределяет ограничения безопасности.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-InputObject
Указывает объекты, записываемые в файл. Введите переменную, содержащую объекты или введите команду или выражение, которое получает объекты.
Свойства параметров
| Тип: | PSObject |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | True |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-LiteralPath
Указывает путь к выходному файлу. Параметр LiteralPath используется точно так же, как и типизированный параметр. Подстановочные знаки не принимаются. Если путь содержит escape-символы, заключите его в одинарные кавычки. Одинарные кавычки указывают PowerShell на то, что не следует интерпретировать какие-либо символы как управляющие последовательности. Дополнительную информацию см. в разделе about_Quoting_Rules.
Свойства параметров
| Тип: | String |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | PSPath |
Наборы параметров
ByLiteralPath
| Position: | Named |
| Обязательно: | True |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | True |
| Значение из оставшихся аргументов: | False |
-NoClobber
NoClobber запрещает перезаписывать существующий файл и отображает сообщение о том, что файл уже существует. По умолчанию, если файл существует в указанном пути, Out-File перезаписывает файл без предупреждения.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | NoOverwrite |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-NoNewline
Указывает, что содержимое, записанное в файл, не заканчивается новым символом. Строковые представления входных объектов объединяются для формирования выходных данных. Пробелы или новые строки не вставляются между выходными строками. Новая строка не добавляется после последней выходной строки.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-WhatIf
Показывает, что произойдет, если командлет будет запущен. Командлет не выполняется.
Свойства параметров
| Тип: | SwitchParameter |
| Default value: | False |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
| Aliases: | wi |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
-Width
Задает максимальное количество символов в каждой строке выходных данных. Все дополнительные символы усечены, не упакованы. Если этот параметр не используется, ширина определяется характеристиками узла. По умолчанию для консоли PowerShell используется 80 символов. Если вы хотите контролировать ширину для всех вызовов Out-File, а также операторов перенаправления (> и >>), задайте $PSDefaultParameterValues['Out-File:Width'] = 2000 перед использованием Out-File.
Свойства параметров
| Тип: | Int32 |
| Default value: | None |
| Поддерживаются подстановочные знаки: | False |
| DontShow: | False |
Наборы параметров
(All)
| Position: | Named |
| Обязательно: | False |
| Значение из конвейера: | False |
| Значение из конвейера по имени свойства: | False |
| Значение из оставшихся аргументов: | False |
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters.
Входные данные
PSObject
Вы можете передать любой объект в этот cmdlet.
Выходные данные
None
Этот командлет не возвращает выходные данные.
Примечания
Входные объекты автоматически форматируются так, как они будут находиться в терминале, но можно использовать командлет Format-* для явного управления форматированием выходных данных в файле. Например: Get-Date | Format-List | Out-File out.txt
Чтобы отправить выходные данные команды PowerShell в командлет Out-File, используйте конвейер. Кроме того, можно хранить данные в переменной и использовать параметр InputObject для передачи данных командлету Out-File.
Out-File сохраняет данные в файл, но не создает выходные объекты в конвейере.