Основы командлетов PowerShell
Командлет (произносится примерно как "команд-лет")— это базовая команда в PowerShell, небольшая команда, реализованная Microsoft на основе .NET Framework.
Командлеты отличаются от внешних программ в традиционных оболочках, таких как.exeили.batфайлы; вместо этого они встроены в среду выполнения PowerShell.
Каждый командлет выполняет конкретную задачу, например, получение данных, установку свойств, создание объектов, экспорт файлов и так далее.
Соглашение об именовании командлетов: Глагол-Существительное
Все командлеты в PowerShell следуют единому"Глагол-Существительное"формату, например:
Get-Process: Получает сведения о процессахSet-Date: Устанавливает системную датуNew-Item: Создает новый элемент (например, файл или папку)Remove-Service: Удаляет службу
Это соглашение об именовании интуитивно понятно и последовательно, что упрощает запоминание и поиск.
Базовая структура синтаксиса командлетов
Структура синтаксиса командлета обычно выглядит следующим образом:
Пример:
Get-Service -Name W32Time
Пояснение:
Get-Service: Получает объект службы-Name W32Time: Указывает имя службы для запроса какW32Time
Другой пример:
Stop-Process -Id 1234 -Force
-Id— это параметр, принимающий значение-Force— это параметр-переключатель, значение указывать не нужно
Объединение параметров с конвейерами
Командлеты поддерживаютпозиционные параметры、именованные параметрыиввод из конвейера. Это позволяет гибко комбинировать команды для построения сложных рабочих процессов.
Пример 1: Форма указания параметров
Get-Process -Name notepad
Пример 2: Передача через конвейер
"notepad" | Get-Process -Name
Пример 3: Передача объектов другому командлету по конвейеру
Get-Process notepad | Stop-Process
В приведенном выше примере,Get-Processполучает объект процесса notepad, затем передаёт его через конвейер вStop-Processчтобы завершить его.
Просмотр справочной информации о командлетах
PowerShell предоставляет полноценную систему справки; вы можете использоватьGet-Helpчтобы просмотреть сведения об использовании любого командлета:
Get-Help Get-Process
Чтобы увидеть больше описаний параметров и примеров, добавьте-Detailedили-Examples:
Get-Help Get-Process -Examples
Если вы используете PowerShell впервые, рекомендуется один раз выполнить следующую команду, чтобы обновить локальную справку:
Update-Help
Краткая справочная таблица основных базовых командлетов
| Командлет | Описание функции |
|---|---|
Get-Command |
Просмотреть все доступные команды |
Get-Help |
Просмотреть справочную информацию о команде |
Get-Process |
Получить список процессов |
Get-Service |
Получить список служб |
Start-Service |
Запуск службы |
Stop-Service |
Остановить службу |
Set-ExecutionPolicy |
Установить политику выполнения |
New-Item |
Создать новый файл или папку |
Remove-Item |
Удалить файл или папку |
Copy-Item |
Копировать файл или папку |
Move-Item |
Переместить файл или папку |
Clear-Host |
Очистить экран, аналогичноcls |
Практический пример: операции с файлами
Создать папку:
New-Item -Path "C:\TestFolder" -ItemType Directory
Создайте текстовый файл в этом каталоге:
New-Item -Path "C:\TestFolder\demo.txt" -ItemType File
Запишите содержимое в файл:
Set-Content -Path "C:\TestFolder\demo.txt" -Value "Hello PowerShell"
Прочитайте содержимое файла:
Get-Content -Path "C:\TestFolder\demo.txt"
Итоги и рекомендации по изучению
- Командлеты — это основные единицы PowerShell; каждый командлет — это исполнитель задач с чётко определённой функцией.
- Единое соглашение об именовании "Verb-Noun" делает командлеты предсказуемыми и лёгкими для изучения.
- Сочетание конвейера, системы параметров и объектной модели делает командлеты превосходными в обработке данных и автоматизации.
- Освоение распространённых командлетов и их сочетание с операциями над объектами — важная отправная точка для изучения PowerShell.
Новичкам рекомендуется практиковаться в следующих аспектах:
- Используйте
Get-Commandизучить все доступные команды - в сочетании с
Get-Helpнаучиться искать сведения об использовании команд - Использовать
New-ItemиGet-Contentи другие команды для локальных файловых операций - Старайтесь чаще объединять команды с помощью конвейеров для обработки данных