Сохранение в файл и печать данных в Windows PowerShell

Windows PowerShellПродолжим говорить о выводе информации в Windows PowerShell.

При работе с Windows PowerShell иногда возникает необходимость сохранить полученную информацию в файл или распечатать её на бумажном носителе. Сделать это можно при помощи командлетов Out-File и Out-Printer, а также стандартных операторов.

Начнем с командлета Out-File.

Вот пример сохранения информации в файл:

Get-Process | Out-File -FilePath c:\process.txt -Encoding "Default"
Сохранение в файл и печать данных в Windows PowerShell
Сохранение данных в файл в Windows PowerShell

В этом конвейере мы сначала выводим список процессов, а потом сохраняем его в файл process.txt на диске C.

Сохранение в файл и печать данных в Windows PowerShell
Файл process.txt

Теперь внимательнее разберем параметры командлета Out-File.

Параметр Описание
-FilePath Указывает путь к файлу. Если такой файл уже есть, он будет перезаписан (чтобы избежать этого, см. параметры -Append и -NoClobber).
-Encoding Отвечает за кодировку файла. Может принимать значения: Unicode, UTF7, UTF8, UTF32, ASCII, BigEndianUnicode, Default и OEM. По умолчанию используется кодировка Unicode. Для сохранения в Windows-кодировке используйте Default, для сохранения в DOS-кодировке используйте OEM.
-Width  Указывает число знаков в каждой выходной строке.
-Append  Записывает данные в конец существующего файла, а не перезаписывает его.
-NoClobber  Запрещает перезапись файла. При одновременном использовании параметров -Append и -NoClobber данные в конец существующего файла.

Второй способ сохранения данных в файл это использование стандартных операторов > и >>.

Если мы введем в терминале

Get-Process > c:\process.txt

результат будет тот же самый.

Если нам надо добавить информацию в конец существующего файла, а не перезаписывать его, то используем оператор >>.

Get-Process >> c:\process.txt

Теперь о выводе данных на печать.

Здесь всё довольно просто. Конвейер

Get-Process | Out-Printer

выведет данные на принтер по умолчанию. Если же надо вывести данные на другой принтер, то используйте параметр -Name.

Например:

Get-Process | Out-Printer -Name "HP LaserJet 1018 PCL 6"

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *