В PowerShell, как и в любом другом языке программирования есть переменные. В этой статье разберём особенности переменных в PowerShell, например все переменные это объекты и переменные имеют динамический тип. Для более подробной информации обратитесь к документации.
powershell
Изучение команд PowerShell
Научимся изучать команды PowerShell. Узнаем какие они бывают, как получить их список, как получить справку по каждой команде. И как эту справку обновить.
Команды PowerShell и их типы
В PowerShell есть 3 типа команд:
- Alias — у команды PowerShell может быть псевдоним, выполняя который вы на самом деле выполните эту команду. Про псевдонимы у меня есть другая статья, которую вы можете найти тут.
- Function — функции написаны на PowerShell, есть встроенные функции, но вы можете создавать и свои;
- Cmdlet — командлеты написаны на C# разработчиками MicroSoft.
Получить список команд можно с помощью командлета Get-Command:
PS C:\WINDOWS\system32> Get-Command CommandType Name Version Source ----------- ---- ------- ------ Alias Add-AppPackage 2.0.1.0 Appx Alias Add-AppPackageVolume 2.0.1.0 Appx Alias Add-AppProvisionedPackage 3.0 Dism Alias Add-ProvisionedAppPackage 3.0 Dism Alias Add-ProvisionedAppxPackage 3.0 Dism Alias Add-ProvisioningPackage 3.0 Provisioning Alias Add-TrustedProvisioningCertificate 3.0 Provisioning Alias Apply-WindowsUnattend 3.0 Dism *** вывод сократил ***
Вы можете заметить, что команды состоят из глагола и существительного. Например Get — это глагол, а Command — существительное.
У команды Get-Command есть опции:
- -Noun <существительное> — показать команды только с этим существительным;
- -Verb <глагол> — показать команды только с этим глаголом;
- -Name <команда> — вывести определённую команду.
Например:
PS C:\WINDOWS\system32> Get-Command -Noun Command CommandType Name Version Source ----------- ---- ------- ------ Function Find-Command 1.0.0.1 PowerShellGet Cmdlet Get-Command 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Invoke-Command 3.0.0.0 Microsoft.PowerShell.Core Cmdlet Measure-Command 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Show-Command 3.1.0.0 Microsoft.PowerShell.Utility Cmdlet Trace-Command 3.1.0.0 Microsoft.PowerShell.Utility PS C:\WINDOWS\system32> Get-Command -Verb Get CommandType Name Version Source ----------- ---- ------- ------ Alias Get-AppPackage 2.0.1.0 Appx Alias Get-AppPackageDefaultVolume 2.0.1.0 Appx Alias Get-AppPackageLastError 2.0.1.0 Appx Alias Get-AppPackageLog 2.0.1.0 Appx Alias Get-AppPackageManifest 2.0.1.0 Appx Alias Get-AppPackageVolume 2.0.1.0 Appx Alias Get-AppProvisionedPackage 3.0 Dism Alias Get-DiskSNV 2.0.0.0 Storage *** вывод сократил ***
Обновление справки
У PowerShell есть встроенная справка, но так как Windows периодически обновляется, то и справку нужно обновлять. Справка автоматически сама не обновляется, а для её обновления нужно использовать командлет Update-Help. Но запускать эту команду нужно в окне PowerShell запущенном от имени администратора.
Когда вы запустите эту команду в верху терминала появится такая запись, при этом эта запись будет расположена поверх уже введённых команд:
После этого, ваша справочная информация будет обновлена. Но возможно некоторые справки на русском языке не будут присутствовать, тогда вы увидите об этом информацию.
Получение справки по командам
Получить справку по какой-то команде можно с помощью командлета Get-Help, например:
PS C:\WINDOWS\system32> Get-Help Get-Command ИМЯ Get-Command ОПИСАНИЕ Gets all commands. СИНТАКСИС Get-Command [[-Name] <System.String[]>] [[-ArgumentList] <System.Object[]>] [-All] [-CommandType {Alias | Function | Filter | Cmdlet | ExternalScript | Application | Script | Workflow | Configuration | All}] [-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported] [-Module <System.String[]>] [-ParameterName <System.String[]>] [-ParameterType <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo] [-Syntax] [-TotalCount <System.Int32>] [<CommonParameters>] Get-Command [[-ArgumentList] <System.Object[]>] [-All] [-FullyQualifiedModule <Microsoft.PowerShell.Commands.ModuleSpecification[]>] [-ListImported] [-Module <System.String[ ]>] [-Noun <System.String[]>] [-ParameterName <System.String[]>] [-ParameterType <System.Management.Automation.PSTypeName[]>] [-ShowCommandInfo] [-Syntax] [-TotalCount <Syst em.Int32>] [-Verb <System.String[]>] [<CommonParameters>] *** вывод сократил ***
Этот командлет тоже имеет дополнительные опции для расширения справки:
- get-help <Команда> -examples — примеры;
- get-help <Команда> -detailed — дополнительные сведения;
- get-help <Команда> -full — технические сведения;
- get-help <Команда> -online — получение справки в интернете (при этом у вас откроется веб-браузер).
Вот, например, online справка по команде Update-Help.
PowerShell использование команд DOS
PowerShell позволяет выполнять команды DOS, знакомые вам по командной строке «cmd.exe«. Это реализовано с помощью псевдонимов (alias).