Starting with PowerShell 5, you can define classes. They have many use cases. One would be to create libraries of useful helper functions to better organize them. For this, a class would define “static” methods. Here is a simple example:

class HelperStuff
   # get first character of string and throw exception
   # when string is empty or multi-line
   static [char] GetFirstCharacter([string]$Text)
      if ($Text.Length -eq 0) { throw 'String is empty' }
      if ($Text.Contains("`n")) { throw 'String contains multiple lines' }
      return $Text[0]
   # get file extension in lower case
   static [string] GetFileExtension([string]$Path)
      return [Io.Path]::GetExtension($Path).ToLower()

This class “HelperStuff” defines two static methods called “GetFirstCharacter” and “GetFileExtension”. It’s now really easy to find and use this utility functions:


PS> [HelperStuff]::GetFirstCharacter('Tobias')

PS> [HelperStuff]::GetFileExtension('c:\TEST.TxT') 

PS> [HelperStuff]::GetFileExtension($profile) 


Twitter This Tip! ReTweet this Tip!