Что такое сценарии Windows PowerShell?
Ключевые выводы
- PowerShell — это язык сценариев, который помогает автоматизировать компьютерные задачи.
- Командлеты — это однофункциональные команды Powershell. Вы можете просмотреть доступные команды с помощью «Get-Command».
- PowerShell доступен в Windows, macOS и Linux.
PowerShell — это язык сценариев, который поможет вам просто и надежно автоматизировать компьютерные задачи. Узнайте, как использовать его, чтобы начать создавать сценарии для вашего ПК с Windows.
Обзор сценариев PowerShell
Чтобы начать создавать простые сценарии PowerShell в Windows, вам нужно знать три вещи:
- Командлеты: команды с одной функцией.
- Параметры: укажите, что, когда, где и как использовать командлеты/команды.
- Конвейер: принимает выходные данные вашего командлета и его параметры и соединяет их с другими командлетами и функциями.
Объединив все три, вы можете создавать простые сценарии, помогающие автоматизировать задачи.
Вот пример конвейера, показывающий, как можно объединить несколько командлетов для достижения задачи:
Программы для Windows, мобильные приложения, игры - ВСЁ БЕСПЛАТНО, в нашем закрытом телеграмм канале - Подписывайтесь:)
Чтобы запустить этот конвейер в PowerShell, вы должны использовать что-то вроде этой команды:
Get-Object Potato | Пил-Объект | Чипы-предметы | Cook-Object DeepFry `
| Чаша Место-Объект
Подробности о командлетах
Как и любой язык сценариев, PowerShell поставляется с предварительно встроенными командами для управления объектами и выполнения различных задач. Эти фундаментальные команды PowerShell известны как командлеты.
Командлеты (произносится как «командлеты») — это небольшие однофункциональные команды, используемые в среде PowerShell с расширением .dll. Это легкие фрагменты кода, которые выполняются быстрее, чем функции, благодаря своей компилируемой природе.
В PowerShell доступны тысячи командлетов. Вам не нужно изучать их все. Вы можете начать с изучения нескольких базовых командлетов PowerShell, а затем продолжать обучение по мере создания сценариев. Чтобы просмотреть командлеты, которые уже установлены на вашем компьютере, запустите:
Команда Get
Если вы просмотрите результаты, вы заметите, что они соответствуют соглашению об именовании глаголов и существительных. Это облегчает понимание того, что делает тот или иной командлет.
Например, Get-Command предоставляет список команд, доступных в PowerShell. Get-Process отображает активные в данный момент процессы, а Copy-Item копирует один или несколько файлов в определенный каталог.
Командлеты также поставляются с обширной документацией, включающей примеры, инструкции по использованию и объяснения их функций.
Чтобы узнать больше о конкретном командлете и о том, как его использовать, выполните:
Get-Help <имя-командлета>
Объяснение параметров PowerShell
Командлеты могут принимать параметры, позволяющие изменять их поведение. При запуске командлета или функции вы можете указать значения параметров, чтобы указать, что, когда, где и как выполняется каждая команда PowerShell.
Например, Get-Process получит список всех активных процессов в вашей операционной системе:
Но что, если вы хотите получить только конкретный процесс? Вы можете сделать это, используя параметры. Например, чтобы получить все процессы Slack, вы можете использовать параметр Name с командлетом Get-Process:
Get-Process -Name Slack
После этого вы увидите только те процессы с именем «slack»:
Некоторые параметры являются «позиционными», что означает, что их имя не является обязательным. В этом случае Get-Process -Name Slack и Get-Process Slack делают то же самое.
Каждый командлет принимает разные типы параметров. Используйте команду Get-Help, чтобы просмотреть принятые параметры командлета в разделе СИНТАКСИС.
Get-Help Get-Process
Вы увидите список всех возможных способов запуска данного командлета:
В этом случае командлет Get-Process принимает такие параметры, как имя, идентификатор, имя компьютера, модуль, FileVersionInfo и другие общие параметры. Символы здесь означают:
Символ
Имя
Значение
Пустой
Параметр не принимает входные данные
–
Дефис
Указывает имя параметра
<>
Угловые скобки
Заполнитель для текста
[]
Кронштейны
Параметр, который может принимать одно или несколько значений
{}
Брекеты
Параметр принимает набор значений
Параметры, которые принимают входные данные, будут указывать тип требуемых данных, например строку, целое число, логическое значение или DateTime. Например, это:
Get-Process [[-Name] <строка[]>]
Означает, что параметр Name принимает одно или несколько строковых значений, а это:
Get-Process -Id
Означает, что параметр Id принимает одно или несколько целочисленных значений.
В более раннем примере Get-Process использовался параметр Name, чтобы сузить результаты. Однако, если вы хотите сузить его до еще более конкретного процесса, вы можете использовать параметр ID, для которого требуется целое число, как указано в его синтаксисе.
Get-Process -Id 3016
После этого вы должны увидеть в списке только один процесс:
Создание конвейера
PowerShell рассматривает все данные как объекты. Для создания сценария эти объекты проходят через серию командлетов или функций, соединенных символом вертикальной черты ( | ). Выбор правильных командлетов и подключение их в логической последовательности с помощью конвейера имеет решающее значение для эффективного сценария.
Предположим, вы создаете сценарий для сортировки и отображения пяти файлов, занимающих больше всего места в папке. Существуют более надежные способы создания сценария сортировки файлов, но следующую однострочную строку легко понять:
Чтобы сделать это в PowerShell, используйте конвейер, который выглядит примерно так:
Get-ChildItem -Path “C:\Directory” -File | Сортировка-Длина объекта-По убыванию `
| Выбрать-Объект-Первый 5 | Формат-Имя таблицы, Длина-AutoSize
Сохранение конвейера как сценария PS1
Теперь, когда у нас есть работающий конвейер, вы можете сохранить его как файл сценария PS1, чтобы вам не приходилось вводить его каждый раз, когда вы его используете.
Самый простой способ создать файл PS1 — вставить сценарий в Блокнот и сохранить файл с расширением .ps1.
Создав файл PS1, вы можете использовать его в PowerShell, запустив ./ScriptName.ps1:
Поздравляем! Теперь вы можете создавать сценарии PowerShell PS1.
PowerShell также доступен в Linux и macOS.
PowerShell — один из лучших языков сценариев для начинающих, который каждый может изучить. Хотя раньше PowerShell был ограничен только Windows, обновленная версия PowerShell теперь также доступна в macOS и многих дистрибутивах Linux! Это делает PowerShell еще более привлекательным, поскольку вы можете перенести свои знания из Windows в другие операционные системы.