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'
}