PowerShell: Własny typ enum

27-Gru-2016

Bardzo nie lubię literówek w moich skryptach, dlatego gdzie mogę korzystam z intellisence, wybieram wartości z listy, korzystam ze zmiennych zamiast stałych napisowych itp. W C# uwielbiam typ enum, bo dzięki niemu mogę korzystać z nic mi nie mówiących wartości liczbowych za pomocą nazwanch tekstów. W Powershellu również można korzystać z typu enum:

Add-Type -TypeDefinition @"
 public enum ShareMode
 {
 Shared = 1,
Private = 2, 
Hidden = 4
 }
"@

W powyższym przykładzie zadeklarowałem typ FeaturesMap. Zmienne tego typu mogą przyjmować wartości:

[ShareMode]::Shared
[ShareMode]::Private
[ShareMode]::Hidden

Aby zadeklarować zmienną tego typu skorzystać można z następującej składni:

[ShareMode]$myVariable = [ShareMode]::Shared

Gdzieś pod spodem moja zmienna ma wartość 1, ale podczas pisania skryptu można ją porównywać do wartości zapisywanej jako [ShareMode]::Shared, np tak

if($myVariable -eq [ShareMode]::Shared)
{
    echo 'shared mode'
}

Dodaj komentarz:

Autor: Rafał Kraik