А.В.Попов "Современный PowerShell". - СПб.: БХВ-Петербург, 2022. - 368 с.
Оглавление
Введение
- Для кого предназначена эта книга
- Структура книги
- Принятые в книге соглашения
Часть I. Знакомимся в PowerShell
Глава 1. Командная строка и автоматизация работы
- Зачем нужна командная строка и скрипты
- Особенности языков сценариев для операционной системы
- Инструменты автоматизации в UNIX-подобных системах
- Особенности автоматизации в Windows
- Командный интерпретатор cmd.exe
- Сервер сценариев Windows Script Host
- Оболочка и среда выполнения сценариев PowerShell
- Итоги
Глава 2. Терминал, консоль и командная оболочка
- Терминалы в Windows
- Стандартная консоль Windows
- Windows Terminal
- Итоги
Глава 3. Первые шаги в PowerShell. Основные понятия
- Запуск оболочки PowerShell
- Работают ли знакомые команды
- Вычисление выражений
- Командлеты
- Функции
- Сценарии
- Внешние исполняемые файлы
- Псевдонимы команд
- Диски PowerShell
- Провайдеры PowerShell
- Навигация по дискам PowerShell
- Просмотр содержимого дисков и каталогов
- Создание дисков
- Итоги
Глава 4. Работа в оболочке PowerShell
- Редактирование в командной строке PowerShell
- Автоматическое завершение команд
- Ввод команды в несколько строках
- Справочная система PowerShell
- Получение справки о командлетах
- Справочная информация, не связанная с командлетами
- История команд в сеансе работы
- Протоколирование действий в сеансе работы
- Настройка оформления командной строки PowerShell
- Заголовок командного окна
- Приглашение командной строки
- Настройка пользовательских профилей
- Политики выполнения сценариев
- Итоги
Глава 5. Работа с объектами
- Конвейеризация объектов в PowerShell
- Просмотр структуры объектов (командлет Get-Member)
- Фильтрация объектов (командлет Where-Object)
- Использование блока кода
- Использование оператора сравнения
- Сортировка объектов (командлет Sort-Object)
- Выделение объектов и свойств (командлет Select-Object)
- Выполнение произвольных действий над объектами в конвейере (командлет ForEach-Object)
- Группировка объектов (командлет Group-Object)
- Измерение характеристик объектов (командлет Measure-Object)
- Обращение к статическим методам и полям
- Итоги
Глава 6. Управление выводом команд
- Форматирование выводимой информации
- Перенаправление выводимой информации
- Сохранение данных в файл
- Печать данных
- Подавление вывода
- Табличный вывод данных в графическое окно
- Вывод в формате HTML
- Дополнительные потоки в PowerShell
- Перенаправление в файл
- Перенаправление в выходной поток Output
- Итоги
Глава 7. Переменные, массивы и хэш-таблицы
- Числовые и символьные литералы
- Числовые литералы
- Символьные строки
- Переменные PowerShell
- Переменные оболочки PowerShell
- Пользовательские переменные. Типы переменных
- Переменные среды Windows
- Массивы в PowerShell
- Обращение к элементам массива
- Операции с массивом
- Хэш-таблицы (ассоциативные массивы)
- Итоги
Глава 8. Операторы и управляющие инструкции
- Арифметические операторы
- Оператор сложения
- Оператор умножения
- Операторы вычитания, деления и остатка от деления
- Операторы присваивания
- Операторы сравнения
- Сравнения с использованием массивов
- Операторы проверки на соответствие шаблону
- Логические операторы
- Управляющие инструкции языка PowerShell
- Инструкция If ... Elseif ... Else
- Цикл While
- Цикл Do ... While
- Цикл For
- Цикл Foreach
- Метки циклов, инструкции Break и Continue
- Инструкция Switch
- Итоги
Глава 9. Функции, фильтры и сценарии
- Функции в PowerShell
- Обработка аргументов функций с помощью переменной $args
- Формальные параметры функций
- Передача параметров с помощью сплаттинга переменных
- Возвращаемые значения
- Функции внутри конвейера команд
- Функции в качестве командлетов. Расширенные функции
- Сценарии PowerShell
- Создание PowerShell
- Запуск сценария из PowerShell
- Запуск сценария из внешней программы
- Передача аргументов в сценарии
- Выход из сценариев. Код возврата
- Области видимости функций
- Глобальная область видимости
- Оператор Dot-Source
- Области видимости переменных
- Модули PowerShell
- Модули-сценарии
- Репозиторий сценариев PowerShell Gallery
- Итоги
Глава 10. Обработка ошибок при выполнении команд
- Объект ErrorRecord и поток ошибок
- Сохранение объектов, соответствующих ошибкам
- Мониторинг возникновения ошибок
- Режимы обработок ошибок
- Обработка "критических" ошибок (исключений)
- Инструкция Trap
- Инструкция Try/Catch/Finally
- Итоги
Глава 11. Работа с файловой системой и оболочкой Windows
- Навигация в файловой системе
- Получение списка файлов и каталогов
- Определение размера каталогов
- Создание файлов и каталогов
- Создание нескольких файлов
- Пересоздание файла
- Создание файла в несуществующем каталоге
- Чтение содержимого файлов
- Запись файлов
- Копирование файлов и каталогов
- Копирование каталога с файлами
- Копирование вложенных каталогов
- Копирование файлов по маске
- Конкатенация файлов
- Переименование и перемещение файлов и каталогов
- Переименование группы файлов
- Перемещение файлов
- Удаление файлов и каталогов
- Поиск текста в файлах
- Замена текста в файлах
- Работа с файлами-ярлыками
- Доступ к COM-объектам из PowerShell
- Объект WScript.Shell
- Создание ярлыка на рабочем столе
- Удаление некорректных ярлыков
Глава 12. Обработка структурированных данных
- Работа с данными в формате CSV
- Чтение из CSV-файла
- Запись в CSV-файл
- Обработка данных без обращения к файлу
- Обработка данных в JSON-формате
- Итоги
Глава 13. Управление процессами, службами и серверами автоматизации
- Управление процессами
- Просмотр списка процессов
- Определение библиотек, используемых процессом
- Остановка процессов
- Запуск процессов
- Изменение приоритетов выполнения процесса
- Завершение не отвечающих процессов
- Управление службами
- Просмотр списка служб
- Остановка и приостановка служб
- Запуск и перезапуск служб
- Изменение параметров службы
- Работа с серверами автоматизации
- Объектные модели Microsoft Word и Excel
- Взаимодействие с Microsoft Word
- Взаимодействие с Microsoft Excel
- Итоги
Глава 14. HTTP-запросы к веб-ресурсам
- Командлет Invoke-WebRequest
- Анализ HTML-страниц
- Выполнение POST-запросов
- Командлет Invoke-RestMethod
- Итоги
Глава 15. Разработка сценариев PowerShell
- Переход от команд к сценариям
- Среды для разработки сценариев
- PowerShell ISE
- Visual Studio Code
- Другие редакторы и среды разработки
- Рекомендации по разработке сценариев
- Общая структура сценария
- Имена и псевдонимы команд и параметров
- Расширенные и базовые функции
- Комментарии
- Справка, основанная на комментариях
- Расположение и форматирование кода
- Производительность сценариев и продуктивность разработчика
- Пример. Статистика по объектам файловой системы (cmd и PowerShell)
- Итоги
Глава 16. Отладка функций и сценариев
- Вывод диагностических сообщений
- Командлет Set-PSDebug
- Трассировка выполнения команд
- Пошаговое выполнение команд
- Вложенная командная строка
- Управление точками останова (командлеты *-PSBreakPoint)
- Создание точки останова для сценария
- Создание точки останова для команды
- Создание точки останова для переменной
- Просмотр точек останова
- Удаление точек останова
- Итоги
Глава 17. Графический интерфейс для сценариев
- Построение GUI с помощью Windows Forms
- Построение GUI с помощью Windows Presentation Foundation
- Итоги
Что дальше? PowerShell для профессионалов
Приложение 1. Что значат эти символы
Приложение 2. PowerShell в macOS и Linux
- Установка и запуск оболочки
- Отличия от Windows PowerShell
Приложение 3. Дополнительная настройка командной строки
- Модуль PSReadLine
- Интеграция с Git. Модуль posh-git
- Оформление приглашения командной строки
- Установка шрифтов Powerline
- Модуль Oh My Posh
- Оформление списков файлов и каталогов. Модуль Terminal-Icons