Powershell — Обзор
Windows PowerShell — это оболочка командной строки и язык сценариев, разработанный специально для системного администрирования. Его аналог в Linux называется Bash Scripting. Основанная на .NET Framework, Windows PowerShell помогает ИТ-специалистам контролировать и автоматизировать администрирование операционной системы Windows и приложений, работающих в среде Windows Server.
Команды Windows PowerShell, называемые командлетами , позволяют управлять компьютерами из командной строки. Поставщики Windows PowerShell позволяют получать доступ к хранилищам данных, таким как реестр и хранилище сертификатов, так же легко, как и к файловой системе.
Кроме того, Windows PowerShell имеет расширенный синтаксический анализатор выражений и полностью разработанный язык сценариев. Таким образом, простыми словами вы можете выполнить все задачи, которые вы делаете с графическим интерфейсом и многое другое.
PowerShell ISE
Интегрированная среда сценариев Windows PowerShell (ISE) является хост-приложением для Windows PowerShell. В Windows PowerShell ISE вы можете запускать команды и писать, тестировать и отлаживать сценарии в одном графическом пользовательском интерфейсе на основе Windows с многострочным редактированием, завершением табуляции, окрашиванием синтаксиса, выборочным выполнением, контекстно-зависимой справкой и поддержкой прав на языки.
Вы можете использовать пункты меню и сочетания клавиш для выполнения многих тех же задач, которые вы выполняете в консоли Windows PowerShell. Например, при отладке сценария в Windows PowerShell ISE для установки точки останова строки в скрипте щелкните правой кнопкой мыши строку кода и выберите « Переключить точку останова» .
Основные команды PowerShell
Существует много команд PowerShell, и очень трудно ввести все эти команды в этом учебном пособии. Мы сосредоточимся на некоторых из наиболее важных, а также основных команд PowerShell.
Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.
Powershell — настройка среды
Значок PowerShell можно найти на панели задач и в меню «Пуск». Просто нажав на значок, он откроется.
Чтобы открыть его, просто нажмите значок, а затем откроется следующий экран, и это означает, что PowerShell готов к работе.
Версия PowerShell
Последняя версия PowerShell — 5.0, и для проверки того, что установлено на нашем сервере, мы вводим следующую команду — : $ PSVersionTable, как показано на следующем снимке экрана, и с экрана мы также знаем, что у нас есть PSVersion 4.0
Чтобы обновить до последней версии, где есть больше командлетов, мы должны загрузить Windows Management Framework 5.0 по следующей ссылке — https://www.microsoft.com/en-us/download/details.aspx?id=50395 и установить ее. ,
PowerShell ISE
Интегрированная среда сценариев Windows PowerShell (ISE) является хост-приложением для Windows PowerShell. В Windows PowerShell ISE вы можете запускать команды и писать, тестировать и отлаживать сценарии в одном графическом пользовательском интерфейсе на основе Windows с многострочным редактированием, завершением табуляции, окрашиванием синтаксиса, выборочным выполнением, контекстно-зависимой справкой и поддержкой прав на языки.
Вы можете использовать пункты меню и сочетания клавиш для выполнения многих тех же задач, которые вы выполняете в консоли Windows PowerShell. Например, при отладке сценария в Windows PowerShell ISE для установки точки останова строки в скрипте щелкните правой кнопкой мыши строку кода и выберите « Переключить точку останова» .
Чтобы открыть его, просто зайдите в Пуск — Поиск, а затем введите — PowerShell, как показано на следующем снимке экрана.
Затем нажмите на Windows PowerShell ISE. Или нажмите стрелку вниз, как показано на следующем снимке экрана.
В нем будут перечислены все приложения, установленные на сервере, а затем щелкните Windows PowerShell ISE.
Следующая таблица будет открыта —
Он состоит из трех разделов, включая: консоль PowerShell с номером 1, затем файл сценариев № 2, а третий — это командный модуль, в котором вы можете найти модуль.
При создании скрипта вы можете запустить напрямую и увидеть результат, как в следующем примере —
Основные команды PowerShell
Существует много команд PowerShell, и очень трудно ввести все эти команды в этом учебном пособии. Мы сосредоточимся на некоторых из наиболее важных, а также основных команд PowerShell.
Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.
Чтобы получить список обновлений —
- Get-HotFix и установить исправление следующим образом
- Get-HotFix -id kb2741530
Powershell — командлеты
Командлет или «Команда let» — это облегченная команда, используемая в среде Windows PowerShell. Среда выполнения Windows PowerShell вызывает эти командлеты из командной строки. Вы можете создавать и вызывать их программно через API Windows PowerShell.
Командлет против командования
Командлеты сильно отличаются от команд в других средах командной оболочки следующими способами:
-
Командлеты являются объектами класса .NET Framework; а не только автономные исполняемые файлы.
-
Командлеты могут быть легко созданы из всего лишь десятка строк кода.
-
Синтаксический анализ, представление ошибок и выходное форматирование не обрабатываются командлетами. Это выполняется средой выполнения Windows PowerShell.
-
Процесс командлетов работает с объектами, не находящимися в текстовом потоке, и объекты могут быть переданы в качестве вывода для конвейерной обработки.
-
Командлеты основаны на записях, так как обрабатывают один объект за раз.
Командлеты являются объектами класса .NET Framework; а не только автономные исполняемые файлы.
Командлеты могут быть легко созданы из всего лишь десятка строк кода.
Синтаксический анализ, представление ошибок и выходное форматирование не обрабатываются командлетами. Это выполняется средой выполнения Windows PowerShell.
Процесс командлетов работает с объектами, не находящимися в текстовом потоке, и объекты могут быть переданы в качестве вывода для конвейерной обработки.
Командлеты основаны на записях, так как обрабатывают один объект за раз.
Получать помощь
Первый шаг — перейти к команде Get-Help, которая объясняет, как дать команду и ее параметр.
Powershell — операции с файлами и папками
Ниже приведены примеры сценариев powershell для файлов и папок.
Sr.No. | Операция и описание |
---|---|
1 | Создание папок
Пример сценария, показывающий, как создавать папки с использованием сценариев PowerShell. |
2 | Создание файлов
Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell. |
3 | Копирование папок
Пример сценария, показывающий, как копировать файлы с использованием сценариев PowerShell. |
4 | Копирование файлов
Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell. |
5 | Удаление папок
Пример сценария, показывающий, как удалять папки с использованием сценариев PowerShell. |
6 | Удаление файлов
Пример сценария, показывающий, как удалять файлы с помощью сценариев PowerShell. |
7 | Перемещение папок
Пример сценария, чтобы показать, как перемещать папки (папки) с помощью сценариев PowerShell. |
8 | Перемещение файлов
Пример сценария, показывающий, как перемещать файлы с использованием сценариев PowerShell. |
9 | Переименовать папки
Пример сценария, показывающий, как переименовать папку (и) с помощью сценариев PowerShell. |
10 | Переименовать файлы
Пример сценария, чтобы показать, как переименовать файл (ы) с помощью сценариев PowerShell. |
11 | Получение предмета
Пример сценария, чтобы показать, как получить элемент (ы) с помощью сценариев PowerShell. |
12 | Проверить наличие папки
Пример Script, чтобы показать, как проверить существование папки с помощью скриптов PowerShell. |
13 | Проверить наличие файла
Пример Script, чтобы показать, как проверить существование файла с помощью скриптов PowerShell. |
Пример сценария, показывающий, как создавать папки с использованием сценариев PowerShell.
Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell.
Пример сценария, показывающий, как копировать файлы с использованием сценариев PowerShell.
Пример сценария, показывающий, как создавать файлы с использованием сценариев PowerShell.
Пример сценария, показывающий, как удалять папки с использованием сценариев PowerShell.
Пример сценария, показывающий, как удалять файлы с помощью сценариев PowerShell.
Пример сценария, чтобы показать, как перемещать папки (папки) с помощью сценариев PowerShell.
Пример сценария, показывающий, как перемещать файлы с использованием сценариев PowerShell.
Пример сценария, показывающий, как переименовать папку (и) с помощью сценариев PowerShell.
Пример сценария, чтобы показать, как переименовать файл (ы) с помощью сценариев PowerShell.
Пример сценария, чтобы показать, как получить элемент (ы) с помощью сценариев PowerShell.
Пример Script, чтобы показать, как проверить существование папки с помощью скриптов PowerShell.
Пример Script, чтобы показать, как проверить существование файла с помощью скриптов PowerShell.
Powershell — Операции с датой и временем
Ниже приведены примеры сценариев powershell для системной даты и времени.
Sr.No. | Операция и описание |
---|---|
1 | Получить системную дату
Пример скрипта, чтобы показать, как получить системную дату, используя скрипты PowerShell. |
2 | Установить системную дату
Пример скрипта, чтобы показать, как установить системную дату с помощью скриптов PowerShell. |
3 | Получить системное время
Пример скрипта, чтобы показать, как получить системное время, используя скрипты PowerShell. |
4 | Установить системное время
Пример скрипта, чтобы показать, как установить системное время с помощью скриптов PowerShell. |
Пример скрипта, чтобы показать, как получить системную дату, используя скрипты PowerShell.
Пример скрипта, чтобы показать, как установить системную дату с помощью скриптов PowerShell.
Пример скрипта, чтобы показать, как получить системное время, используя скрипты PowerShell.
Пример скрипта, чтобы показать, как установить системное время с помощью скриптов PowerShell.
Powershell — операции ввода-вывода файлов
Ниже приведены примеры сценариев PowerShell для создания и чтения различных типов файлов.
Sr.No. | Операция и описание |
---|---|
1 | Создать текстовый файл
Пример сценария, показывающий, как создать текстовый файл с использованием сценариев PowerShell. |
2 | Читать текстовый файл
Пример сценария, чтобы показать, как читать текстовый файл с помощью сценариев PowerShell. |
3 | Создать XML-файл
Пример сценария, показывающий, как создать файл XML с использованием сценариев PowerShell. |
4 | Читать XML-файл
Пример сценария, показывающий, как читать XML-файл с помощью сценариев PowerShell. |
5 | Создать CSV-файл
Пример сценария, показывающий, как создать файл CSV с использованием сценариев PowerShell. |
6 | Читать файл CSV
Пример сценария, показывающий, как читать файл CSV с помощью сценариев PowerShell. |
7 | Создать HTML-файл
Пример сценария, показывающий, как создать файл HTML с использованием сценариев PowerShell. |
8 | Читать HTML-файл
Пример Script, чтобы показать, как читать HTML-файл, используя скрипты PowerShell. |
9 | Стирание содержимого файла
Пример сценария, показывающий, как удалить содержимое файла с помощью сценариев PowerShell. |
10 | Добавить текстовые данные
Пример сценария, показывающий, как добавлять текст к содержимому файла с помощью сценариев PowerShell. |
Пример сценария, показывающий, как создать текстовый файл с использованием сценариев PowerShell.
Пример сценария, чтобы показать, как читать текстовый файл с помощью сценариев PowerShell.
Пример сценария, показывающий, как создать файл XML с использованием сценариев PowerShell.
Пример сценария, показывающий, как читать XML-файл с помощью сценариев PowerShell.
Пример сценария, показывающий, как создать файл CSV с использованием сценариев PowerShell.
Пример сценария, показывающий, как читать файл CSV с помощью сценариев PowerShell.
Пример сценария, показывающий, как создать файл HTML с использованием сценариев PowerShell.
Пример Script, чтобы показать, как читать HTML-файл, используя скрипты PowerShell.
Пример сценария, показывающий, как удалить содержимое файла с помощью сценариев PowerShell.
Пример сценария, показывающий, как добавлять текст к содержимому файла с помощью сценариев PowerShell.
Powershell — продвинутые командлеты
Командлеты
Командлет или «Команда let» — это облегченная команда, используемая в среде Windows PowerShell. Среда выполнения Windows PowerShell вызывает эти командлеты из командной строки. Вы можете создавать и вызывать их программно через API Windows PowerShell. Ниже приведен расширенный пример использования командлетов.
Sr.No. | Тип и описание командлета |
---|---|
1 | Командлет Get-Unique
Пример программы для демонстрации командлета Get-Unique. |
2 |
Командлет Group-Object Пример программы для демонстрации командлета Group-Object. |
3 | Командлет Measure-Object
Пример программы для демонстрации командлета Measure-Object. |
4 | Командлет Compare-Object
Пример программы для демонстрации командлета Compare-Object. |
5 | Командлет Format-List
Пример программы для демонстрации командлета Format-List. |
6 | Широкий формат командлета
Пример программы для демонстрации командлета Format-Wide. |
7 | Командлет Where-Object
Пример программы для демонстрации командлета Where-Object. |
8 | Командлет Get-ChildItem
Пример программы для демонстрации командлета Get-ChildItem. |
9 | Командлет ForEach-Object
Пример программы для демонстрации командлета ForEach-Object. |
10 | Командлет Start-Sleep
Пример программы для демонстрации командлета Start-Sleep. |
11 | Командлет Read-Host
Пример программы для демонстрации командлета Read-Host. |
12 | Командлет Select-Object
Пример программы для демонстрации командлета Select-Object. |
13 | Командлет Sort-Object
Пример программы для демонстрации командлета Sort-Object. |
14 | Командлет предупреждения о записи
Пример программы для демонстрации командлета Write-Warning. |
15 | Командлет Write-Host
Пример программы для демонстрации командлета Write-Host. |
16 | Командлет Invoke-Item
Пример программы для демонстрации командлета Invoke-Item. |
17 | Командлет Invoke-Expression
Пример программы для демонстрации командлета Invoke-Expression. |
18 | Командлет Measure-Command
Пример программы для демонстрации командлета Measure-Command. |
19 | Командлет Invoke-History
Пример программы для демонстрации командлета Invoke-History. |
20 | Командлет Add-History
Пример программы для демонстрации командлета Add-History. |
21 | Командлет Get-History
Пример программы для демонстрации командлета Get-History. |
22 | Командлет Get-Culture
Пример программы для демонстрации командлета Get-Culture. |
Пример программы для демонстрации командлета Get-Unique.
Командлет Group-Object
Пример программы для демонстрации командлета Group-Object.
Пример программы для демонстрации командлета Measure-Object.
Пример программы для демонстрации командлета Compare-Object.
Пример программы для демонстрации командлета Format-List.
Пример программы для демонстрации командлета Format-Wide.
Пример программы для демонстрации командлета Where-Object.
Пример программы для демонстрации командлета Get-ChildItem.
Пример программы для демонстрации командлета ForEach-Object.
Пример программы для демонстрации командлета Start-Sleep.
Пример программы для демонстрации командлета Read-Host.
Пример программы для демонстрации командлета Select-Object.
Пример программы для демонстрации командлета Sort-Object.
Пример программы для демонстрации командлета Write-Warning.
Пример программы для демонстрации командлета Write-Host.
Пример программы для демонстрации командлета Invoke-Item.
Пример программы для демонстрации командлета Invoke-Expression.
Пример программы для демонстрации командлета Measure-Command.
Пример программы для демонстрации командлета Invoke-History.
Пример программы для демонстрации командлета Add-History.
Пример программы для демонстрации командлета Get-History.
Пример программы для демонстрации командлета Get-Culture.
Powershell — Сценарии
Windows PowerShell — это оболочка командной строки и язык сценариев, разработанный специально для системного администрирования. Его аналог в Linux называется Bash Scripting. Основанная на .NET Framework, Windows PowerShell помогает ИТ-специалистам контролировать и автоматизировать администрирование операционной системы Windows и приложений, работающих в среде Windows Server.
Команды Windows PowerShell, называемые командлетами , позволяют управлять компьютерами из командной строки. Поставщики Windows PowerShell позволяют получать доступ к хранилищам данных, таким как реестр и хранилище сертификатов, так же легко, как и к файловой системе.
Кроме того, Windows PowerShell имеет расширенный синтаксический анализатор выражений и полностью разработанный язык сценариев. Таким образом, простыми словами вы можете выполнить все задачи, которые вы делаете с графическим интерфейсом и многое другое. Windows PowerShell Scripting — это полностью разработанный язык сценариев, имеющий богатый анализатор выражений /
Характеристики
-
Командлеты — Командлеты выполняют общие задачи системного администрирования, например, управление реестром, службами, процессами, журналами событий и использование инструментария управления Windows (WMI).
-
Ориентация на задачи — язык сценариев PowerShell основан на задачах и обеспечивает поддержку существующих сценариев и инструментов командной строки.
-
Согласованный дизайн — поскольку командлеты и хранилища системных данных используют общий синтаксис и имеют общие соглашения об именах, обмен данными становится простым. Вывод одного командлета может быть передан другому командлету без каких-либо манипуляций.
-
Простота использования — упрощенная навигация на основе команд позволяет пользователям перемещаться по реестру и другим хранилищам данных, аналогичным навигации по файловой системе.
-
Основанный на объектах — PowerShell обладает мощными возможностями манипулирования объектами. Объекты могут быть отправлены в другие инструменты или базы данных напрямую.
-
Расширяемый интерфейс. — PowerShell можно настраивать, поскольку независимые поставщики программного обеспечения и корпоративные разработчики могут создавать собственные инструменты и утилиты, используя PowerShell для администрирования своего программного обеспечения.
Командлеты — Командлеты выполняют общие задачи системного администрирования, например, управление реестром, службами, процессами, журналами событий и использование инструментария управления Windows (WMI).
Ориентация на задачи — язык сценариев PowerShell основан на задачах и обеспечивает поддержку существующих сценариев и инструментов командной строки.
Согласованный дизайн — поскольку командлеты и хранилища системных данных используют общий синтаксис и имеют общие соглашения об именах, обмен данными становится простым. Вывод одного командлета может быть передан другому командлету без каких-либо манипуляций.
Простота использования — упрощенная навигация на основе команд позволяет пользователям перемещаться по реестру и другим хранилищам данных, аналогичным навигации по файловой системе.
Основанный на объектах — PowerShell обладает мощными возможностями манипулирования объектами. Объекты могут быть отправлены в другие инструменты или базы данных напрямую.
Расширяемый интерфейс. — PowerShell можно настраивать, поскольку независимые поставщики программного обеспечения и корпоративные разработчики могут создавать собственные инструменты и утилиты, используя PowerShell для администрирования своего программного обеспечения.
переменные
Переменные PowerShell являются именованными объектами. Поскольку PowerShell работает с объектами, эти переменные используются для работы с объектами.
Создание переменной
Имя переменной должно начинаться с $ и может содержать буквенно-цифровые символы и подчеркивание в их именах. Переменную можно создать, введя правильное имя переменной.
Введите следующую команду в консоли PowerShell ISE. Предполагая, что вы находитесь в папке D: \ test.
$location = Get-Location
Здесь мы создали переменную $ location и присвоили ей вывод командлета Get-Location. Теперь он содержит текущее местоположение.
Используя переменную
Введите следующую команду в консоли PowerShell ISE.
$location
Выход
Вы можете увидеть следующий вывод в консоли PowerShell.
Path ---- D:\test
Получение информации о переменной
Командлет Get-Member может указать тип используемой переменной. Смотрите пример ниже.
$location | Get-Member
Выход
Вы можете увидеть следующий вывод в консоли PowerShell.
TypeName: System.Management.Automation.PathInfo Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Drive Property System.Management.Automation.PSDriveInfo Drive {get;} Path Property System.String Path {get;} Provider Property System.Management.Automation.ProviderInfo Provider {get;} ProviderPath Property System.String ProviderPath {get;}
Powershell — специальные переменные
PowerShell Специальные переменные хранят информацию о PowerShell. Они также называются автоматическими переменными. Ниже приведен список автоматических переменных —
оператор | Описание |
---|---|
$$ | Представляет последний токен в последней строке, полученной сеансом. |
$? | Представляет статус выполнения последней операции. Он содержит ИСТИНА, если последняя операция прошла успешно, и ЛОЖЬ, если она не удалась. |
$ ^ | Представляет первый токен в последней строке, полученной сеансом. |
$ _ | То же, что $ PSItem. Содержит текущий объект в объекте конвейера. Вы можете использовать эту переменную в командах, которые выполняют действие для каждого объекта или для выбранных объектов в конвейере. |
$ ARGS | Представляет массив необъявленных параметров и / или значений параметров, которые передаются в функцию, сценарий или блок сценария. |
$ ConsoleFileName | Представляет путь к файлу консоли (.psc1), который последний раз использовался в сеансе. |
$ ERROR | Представляет массив объектов ошибок, которые представляют самые последние ошибки. |
$ EVENT | Представляет объект PSEventArgs, представляющий обрабатываемое событие. |
$ EventArgs | Представляет объект, представляющий первый аргумент события, который является производным от EventArgs события, которое обрабатывается. |
$ EventSubscriber | Представляет объект PSEventSubscriber, который представляет подписчика на событие, которое обрабатывается. |
$ ExecutionContext | Представляет объект EngineIntrinsics, который представляет контекст выполнения хоста PowerShell. |
$ FALSE | Представляет ЛОЖЬ. Вы можете использовать эту переменную для представления FALSE в командах и сценариях вместо использования строки «false». |
$ FOREACH | Представляет перечислитель (не результирующие значения) цикла ForEach. Вы можете использовать свойства и методы перечислителей для значения переменной $ ForEach. |
$ HOME | Представляет полный путь к домашнему каталогу пользователя. |
$ HOST | Представляет объект, представляющий текущее хост-приложение для PowerShell. |
$ ВХОД | Представляет перечислитель, который перечисляет все входные данные, которые передаются в функцию. |
$ LASTEXITCODE | Представляет код завершения последней программы для Windows, которая была запущена. |
$ МАТЧИ | Переменная $ Matches работает с операторами -match и -notmatch. |
$ MYINVOCATION | $ MyInvocation заполняется только для скриптов, функций и блоков скриптов. Свойства PSScriptRoot и PSCommandPath автоматической переменной $ MyInvocation содержат информацию о вызывающем или вызывающем скрипте, а не о текущем скрипте. |
$ NESTEDPROMPTLEVEL | Представляет текущий уровень подсказки. |
$ NULL | $ null — это автоматическая переменная, которая содержит NULL или пустое значение. Вы можете использовать эту переменную для представления отсутствующего или неопределенного значения в командах и сценариях. |
$ PID | Представляет идентификатор процесса (PID) процесса, в котором размещается текущий сеанс PowerShell. |
$ PROFILE | Представляет полный путь профиля PowerShell для текущего пользователя и текущего хост-приложения. |
$ PSCMDLET | Представляет объект, представляющий командлет или расширенную функцию, которая выполняется. |
$ PSCOMMANDPATH | Представляет полный путь и имя файла запускаемого сценария. |
$ PSCULTURE | Представляет имя культуры, используемой в настоящее время в операционной системе. |
$ PSDebugContext | Во время отладки эта переменная содержит информацию о среде отладки. В противном случае он содержит значение NULL. |
$ PSHOME | Представляет полный путь к каталогу установки для PowerShell. |
$ PSITEM | То же, что $ _. Содержит текущий объект в объекте конвейера. |
$ PSSCRIPTROOT | Представляет каталог, из которого выполняется скрипт. |
$ PSSENDERINFO | Представляет информацию о пользователе, запустившем сеанс PSSession, включая идентификатор пользователя и часовой пояс исходного компьютера. |
$ PSUICulture | Представляет имя культуры пользовательского интерфейса (UI), которая в настоящее время используется в операционной системе. |
$ PSVERSIONTABLE | Представляет доступную только для чтения хэш-таблицу, в которой отображаются сведения о версии PowerShell, запущенной в текущем сеансе. |
$ SENDER | Представляет объект, который сгенерировал это событие. |
$ SHELLID | Представляет идентификатор текущей оболочки. |
$ StackTrace | Представляет трассировку стека для самой последней ошибки. |
$ ЭТА | В блоке сценария, который определяет свойство сценария или метод сценария, переменная $ This ссылается на расширяемый объект. |
$ ИСТИНА | Представляет ИСТИНА. Вы можете использовать эту переменную для представления ИСТИНА в командах и скриптах. |
Powershell — операторы
PowerShell предоставляет богатый набор операторов для работы с переменными. Мы можем разделить все операторы PowerShell на следующие группы:
- Арифметические Операторы
- Операторы присваивания
- Операторы сравнения
- Логические Операторы
- Перенаправленные операторы
- Разлитые и присоединяющиеся операторы
- Операторы типа
- Унарные операторы
Арифметические операторы
Арифметические операторы используются в математических выражениях так же, как они используются в алгебре. В следующей таблице перечислены арифметические операторы —
Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
+ (Дополнение) | Добавляет значения по обе стороны от оператора. | А + Б даст 30 |
— (вычитание) | Вычитает правый операнд из левого операнда. | A — B даст -10 |
* (Умножение) | Умножает значения по обе стороны от оператора. | А * Б даст 200 |
/ (Отдел) | Делит левый операнд на правый операнд. | Б / у даст 2 |
% (Модуль) | Делит левый операнд на правый операнд и возвращает остаток. | B% A даст 0 |
Операторы сравнения
Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.
Предположим, что целочисленная переменная A содержит 10, а переменная B содержит 20, тогда —
оператор | Описание | пример |
---|---|---|
экв (равно) | Сравнивает два значения, чтобы быть равными или нет. | A -eq B даст ложь |
ne (не равно) | Сравнивает два значения, чтобы быть не равным. | A -ne B даст истинное |
GT (больше чем) | Сравнивает первое значение с большим, чем второе. | B -GT даст верный |
ge (больше или равно) | Сравнивает первое значение, которое больше или равно второму. | B -ge A даст истинное |
л (меньше чем) | Сравнивает первое значение с меньшим, чем второе. | Б-л д даст ложь |
ле (меньше или равно) | Сравнивает первое значение с меньшим или равным второму. | B -le A даст ложное |
Операторы присваивания
Ниже приведены операторы присваивания, поддерживаемые языком PowerShell.
оператор | Описание | пример |
---|---|---|
знак равно | Простой оператор присваивания. Назначает значения от правых операндов к левому операнду. | C = A + B назначит значение A + B в C |
+ = | Добавить И оператор присваивания. Он добавляет правый операнд к левому операнду и присваивает результат левому операнду. | C + = A эквивалентно C = C + A |
знак равно | Вычитание И оператор присваивания. Вычитает правый операнд из левого операнда и присваивает результат левому операнду. | C — = A эквивалентно C = C — A |
Логические операторы
В следующей таблице перечислены логические операторы —
Предположим, что булевы переменные A верны, а переменная B ложна, тогда —
оператор | Описание | пример |
---|---|---|
И (логическое и) | Называется логический оператор И. Если оба операнда отличны от нуля, условие становится истинным. | (A -AND B) является ложным |
ИЛИ (логический или) | Вызывается логическим оператором ИЛИ. Если любой из двух операндов отличен от нуля, условие становится истинным. | (A -OR B) верно |
НЕ (логично, нет) | Вызывается логическим оператором НЕ. Используйте для изменения логического состояния своего операнда. Если условие истинно, то оператор Логический НЕ будет делать ложь. | -НЕТ (А-И Б) верно |
Разные операторы
Ниже приведены различные важные операторы, поддерживаемые языком PowerShell.
оператор | Описание | пример |
---|---|---|
> (Перенаправленный оператор) | Перенаправленный оператор. Назначает вывод для печати на перенаправленный файл / устройство вывода. | dir> test.log напечатает список каталогов в файле test.log |
Powershell — Looping
Может возникнуть ситуация, когда вам нужно выполнить блок кода несколько раз. В общем случае операторы выполняются последовательно: первый оператор в функции выполняется первым, затем второй и так далее.
Языки программирования предоставляют различные управляющие структуры, которые допускают более сложные пути выполнения.
Оператор цикла позволяет нам выполнять оператор или группу операторов несколько раз, и в большинстве языков программирования ниже приводится общая форма инструкции цикла.
Язык программирования PowerShell предоставляет следующие типы циклов для обработки требований циклов. Нажмите на следующие ссылки, чтобы проверить их детали.
Sr.No. | Цикл и описание |
---|---|
1 | для цикла
Выполнить последовательность операторов несколько раз и сократить код, который управляет переменной цикла. |
2 | цикл forEach
Улучшено для цикла. Это в основном используется для обхода коллекции элементов, включая массивы. |
3 | в то время как цикл
Повторяет оператор или группу операторов, пока данное условие выполняется. Он проверяет условие перед выполнением тела цикла. |
4 | делать … пока цикл
Как оператор while, за исключением того, что он проверяет условие в конце тела цикла. |
Выполнить последовательность операторов несколько раз и сократить код, который управляет переменной цикла.
Улучшено для цикла. Это в основном используется для обхода коллекции элементов, включая массивы.
Повторяет оператор или группу операторов, пока данное условие выполняется. Он проверяет условие перед выполнением тела цикла.
Как оператор while, за исключением того, что он проверяет условие в конце тела цикла.
Powershell — Условия
Структуры принятия решений имеют одно или несколько условий, которые должны быть оценены или протестированы программой, а также оператор или операторы, которые должны быть выполнены, если условие определено как истинное, и, необязательно, другие операторы, которые должны быть выполнены, если условие определено быть ложным.
Ниже приводится общая форма типичной структуры принятия решений, встречающейся в большинстве языков программирования.
Язык сценариев PowerShell предоставляет следующие типы операторов принятия решений. Нажмите на следующие ссылки, чтобы проверить их детали.
Sr.No. | Заявление и описание |
---|---|
1 | если заявление
Оператор if состоит из логического выражения, за которым следует одно или несколько операторов. |
2 | если … еще заявление
За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false. |
3 | вложенный оператор if
Вы можете использовать один оператор if или elseif внутри другого оператора if или elseif . |
4 | заявление о переключении
Оператор switch позволяет проверять переменную на соответствие списку значений. |
Оператор if состоит из логического выражения, за которым следует одно или несколько операторов.
За оператором if может следовать необязательный оператор else , который выполняется, когда логическое выражение имеет значение false.
Вы можете использовать один оператор if или elseif внутри другого оператора if или elseif .
Оператор switch позволяет проверять переменную на соответствие списку значений.
Powershell — Array
PowerShell предоставляет структуру данных, массив , в котором хранится последовательная коллекция фиксированного размера элементов любого типа. Массив используется для хранения коллекции данных, но часто более полезно думать о массиве как о коллекции переменных или объектов.
Вместо того, чтобы объявлять отдельные переменные, такие как number0, number1, … и number99, вы объявляете одну переменную массива, такую как числа, и используете числа [0], числа [1] и …, числа [99] для представления отдельные переменные.
В этом руководстве рассказывается, как объявлять переменные массива, создавать массивы и обрабатывать массивы с использованием индексированных переменных.
Объявление переменных массива
Чтобы использовать массив в программе, вы должны объявить переменную для ссылки на массив и указать тип массива, на который может ссылаться переменная. Вот синтаксис для объявления переменной массива —
Синтаксис
$A = 1, 2, 3, 4 or $A = 1..4
Примечание. По умолчанию тип объектов массива — System.Object. Метод GetType () возвращает тип массива. Тип можно передать.
пример
Следующие фрагменты кода являются примерами этого синтаксиса —
[int32[]]$intA = 1500,2230,3350,4000 $A = 1, 2, 3, 4 $A.getType()
Это даст следующий результат —
Выход
IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True Object[] System.Array
Доступ к элементам массива осуществляется через индекс . Индексы массива основаны на 0; то есть они начинаются с 0 до arrayRefVar.length-1 .
пример
Следующий оператор объявляет переменную массива myList, создает массив из 10 элементов двойного типа и присваивает его ссылку на myList —
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123
Следующая картинка представляет массив myList. Здесь myList содержит десять двойных значений и индексы от 0 до 9.
Обработка массивов
При обработке элементов массива мы часто используем цикл for или цикл foreach, поскольку все элементы в массиве относятся к одному типу, а размер массива известен.
пример
Вот полный пример, показывающий, как создавать, инициализировать и обрабатывать массивы —
$myList = 5.6, 4.5, 3.3, 13.2, 4.0, 34.33, 34.0, 45.45, 99.993, 11123 write-host("Print all the array elements") $myList write-host("Get the length of array") $myList.Length write-host("Get Second element of array") $myList[1] write-host("Get partial array") $subList = $myList[1..3] write-host("print subList") $subList write-host("using for loop") for ($i = 0; $i -le ($myList.length - 1); $i += 1) { $myList[$i] } write-host("using forEach Loop") foreach ($element in $myList) { $element } write-host("using while Loop") $i = 0 while($i -lt 4) { $myList[$i]; $i++ } write-host("Assign values") $myList[1] = 10 $myList
Это даст следующий результат —
Выход
Print all the array elements 5.6 4.5 3.3 13.2 4 34.33 34 45.45 99.993 11123 Get the length of array 10 Get Second element of array 4.5 Get partial array print subList 4.5 3.3 13.2 using for loop 5.6 4.5 3.3 13.2 4 34.33 34 45.45 99.993 11123 using forEach Loop 5.6 4.5 3.3 13.2 4 34.33 34 45.45 99.993 11123 using while Loop 5.6 4.5 3.3 13.2 Assign values 5.6 10 3.3 13.2 4 34.33 34 45.45 99.993 11123
Примеры методов массивов
Вот полный пример, показывающий операции над массивами с использованием его методов
$myList = @(0..4) write-host("Print array") $myList $myList = @(0..4) write-host("Assign values") $myList[1] = 10 $myList
Это даст следующий результат —
Выход
Clear array Print array 0 1 2 3 4 Assign values 0 10 2 3 4
Powershell — Hashtables
Hashtable хранит пары ключ / значение в хеш-таблице. При использовании Hashtable вы указываете объект, который используется в качестве ключа, и значение, которое вы хотите связать с этим ключом. Обычно мы использовали строку или числа в качестве ключей.
В этом руководстве рассказывается, как объявлять хеш-таблицы, создавать хеш-таблицы и обрабатывать хеш-таблицы с использованием его методов.
Объявление хеш-переменных
Чтобы использовать хеш-таблицу в программе, вы должны объявить переменную для ссылки на хеш-таблицу. Вот синтаксис для объявления хеш-переменной:
Синтаксис
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"} or $hash = @{}
Примечание. Упорядоченные словари могут быть созданы с использованием аналогичного синтаксиса. Упорядоченные словари поддерживают порядок добавления записей, а хеш-таблицы — нет.
пример
Следующие фрагменты кода являются примерами этого синтаксиса —
$hash = [ordered]@{ ID = 1; Shape = "Square"; Color = "Blue"}
Распечатать хеш-таблицу.
$hash
Выход
Name Value ---- ----- ID 1 Color Blue Shape Square
Доступ к значениям хеш-таблицы осуществляется через ключи .
> $hash["ID"] 1
Обработка Hashtable
Точечная нотация может использоваться для доступа к ключам или значениям хеш-таблиц.
> $hash.keys ID Color Shape > $hash.values 1 Blue Square
пример
Вот полный пример, показывающий, как создавать, инициализировать и обрабатывать хеш-таблицу —
$hash = @{ ID = 1; Shape = "Square"; Color = "Blue"} write-host("Print all hashtable keys") $hash.keys write-host("Print all hashtable values") $hash.values write-host("Get ID") $hash["ID"] write-host("Get Shape") $hash.Number write-host("print Size") $hash.Count write-host("Add key-value") $hash["Updated"] = "Now" write-host("Add key-value") $hash.Add("Created","Now") write-host("print Size") $hash.Count write-host("Remove key-value") $hash.Remove("Updated") write-host("print Size") $hash.Count write-host("sort by key") $hash.GetEnumerator() | Sort-Object -Property key
Это даст следующий результат —
Выход
Print all hashtable keys ID Color Shape Print all hashtable values 1 Blue Square Get ID 1 Get Shape print Size 3 Add key-value Add key-value print Size 5 Remove key-value print Size 4 sort by key Name Value ---- ----- Color Blue Created Now ID 1 Shape Square
Powershell — регулярное выражение
Регулярное выражение — это специальная последовательность символов, которая помогает вам сопоставлять или находить другие строки или наборы строк, используя специальный синтаксис, содержащийся в шаблоне. Их можно использовать для поиска, редактирования или манипулирования текстом и данными.
Вот таблица со списком всех синтаксисов метасимволов регулярных выражений, доступных в PowerShell:
Подвыражение | Матчи |
---|---|
^ | Соответствует началу строки. |
$ | Соответствует концу строки. |
, | Соответствует любому отдельному символу, кроме новой строки. Использование опции m позволяет ему соответствовать и новой строке. |
[…] | Соответствует любому отдельному символу в скобках. |
[^ …] | Соответствует любому отдельному символу не в скобках. |
\ A | Начало всей строки. |
\ г | Конец всей строки. |
\ Z | Конец всей строки, кроме допустимого конечного конца строки. |
ре * | Соответствует 0 или более вхождений предыдущего выражения. |
ре + | Соответствует 1 или более из предыдущей вещи. |
повторно? | Соответствует 0 или 1 вхождению предыдущего выражения. |
re {n} | Совпадает ровно с числом вхождений предыдущего выражения. |
re {n,} | Соответствует n или более вхождений предыдущего выражения. |
re {n, m} | Соответствует не менее n и не более m вхождений предыдущего выражения. |
| б | Соответствует либо a, либо b. |
(Ре) | Группирует регулярные выражения и запоминает сопоставленный текст. |
(?: re) | Группирует регулярные выражения без запоминания сопоставленного текста. |
(?> re) | Соответствует независимому образцу без возврата. |
\ ш | Соответствует слову символов. |
\ W | Соответствует несловесным символам. |
\ s | Соответствует пробелу. Эквивалентно [\ t \ n \ r \ f]. |
\ S | Соответствует непробельному пространству. |
\ d | Соответствует цифрам. Эквивалентно [0-9]. |
\ D | Совпадает с нецифрами. |
\ A | Соответствует началу строки. |
\ Z | Соответствует концу строки. Если новая строка существует, она совпадает непосредственно перед новой строкой. |
\ г | Соответствует концу строки. |
\Г | Соответствует точке, где закончился последний матч. |
\ п | Обратная ссылка для захвата номера группы «n». |
\ б | Соответствует границам слов вне скобок. Соответствует возврату (0x08) внутри скобок. |
\ B | Соответствует границам без слов. |
\ n, \ t и т. д. | Сопоставляет переводы строк, возврат каретки, вкладки и т. Д. |
\ Q | Побег (цитата) всех символов до \ E. |
\ E | Завершает цитирование, начинающееся с \ Q. |
Вот полные примеры, показывающие, как использовать регулярные выражения в PowerShell;
Sr.No. | Соответствие и описание |
---|---|
1 | Совпадение персонажей
Пример поддерживаемых символов регулярного выражения. |
2 | Соответствие классов персонажей
Пример поддерживаемых классов символов. |
3 | Квантификаторы совпадений
Пример поддерживаемых квантификаторов. |
Пример поддерживаемых символов регулярного выражения.
Пример поддерживаемых классов символов.
Пример поддерживаемых квантификаторов.
Powershell — Backtick
Оператор Backtick (`) также называется оператором переноса слов. Это позволяет команде записываться в несколько строк. Он также может использоваться для новой строки (`n) или табуляции (` t) в предложениях. Смотрите примеры ниже —
Пример 1
Get-Service * | Sort-Object ServiceType ` | Format-Table Name, ServiceType, Status -AutoSize
Это станет
Get-Service * | Sort-Object ServiceType | Format-Table Name, ServiceType, Status -AutoSize
Проверьте вывод как
Name ServiceType Status ---- ----------- ------ MSSQLServerADHelper100 Win32OwnProcess Stopped ntrtscan Win32OwnProcess Running ...
Пример 2
Использование новой строки и табуляции.
> Write-host "Title Subtitle" Title Subtitle > Write-host "Title `nSubtitle" Title Subtitle > Write-host "Title `tSubtitle" Title Subtitle
Powershell — Кронштейны
Powershell поддерживает три типа кронштейнов.
-
Скобки в скобках. — ()
-
Брекеты-скобки. — {}
-
Квадратные скобки. — []
Скобки в скобках. — ()
Брекеты-скобки. — {}
Квадратные скобки. — []
Скобки в скобках
Этот тип скобок используется для
-
передавать аргументы
-
приложить несколько инструкций
-
разрешить неоднозначность
-
создать массив
передавать аргументы
приложить несколько инструкций
разрешить неоднозначность
создать массив
пример
> $array = @("item1", "item2", "item3") > foreach ($element in $array) { $element } item1 item2 item3
Скобки скобки
Этот тип скобок используется для
-
приложить заявления
-
блокировать команды
приложить заявления
блокировать команды
пример
$x = 10 if($x -le 20){ write-host("This is if statement") }
Это даст следующий результат —
Выход
This is if statement.
Квадратные скобки
Этот тип скобок используется для
-
доступ к массиву
-
доступ к хеш-таблицам
-
фильтр с использованием регулярного выражения
доступ к массиву
доступ к хеш-таблицам
фильтр с использованием регулярного выражения
пример
> $array = @("item1", "item2", "item3") > for($i = 0; $i -lt $array.length; $i++){ $array[$i] } item1 item2 item3 >Get-Process [r-s]* Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 320 72 27300 33764 227 3.95 4028 SCNotification 2298 77 57792 48712 308 2884 SearchIndexer ...
Powershell — Alias
Псевдоним PowerShell — это другое имя командлета или любого элемента команды.
Создание псевдонима
Используйте командлет New-Alias для создания псевдонима. В приведенном ниже примере мы создали справку по псевдониму для командлета Get-Help.
New-Alias -Name help -Value Get-Help
Теперь вызовите псевдоним.
help Get-WmiObject -Detailed
Вы увидите следующий вывод.
NAME Get-WmiObject SYNOPSIS Gets instances of Windows Management Instrumentation (WMI) classes or information about the available classes. SYNTAX Get-WmiObject [ ...
Получение псевдонима
Используйте командлет get-alias , чтобы получить все псевдонимы, присутствующие в текущем сеансе powershell.
Get-Alias
Вы увидите следующий вывод.