vimwiki

PowerShell Object and Array

Object have properties and methods

List the properties:

"hello" | Get-Member - MemberType Property

Use the properties

"hello".Length
    5

String method

$my_string = "hello, world"
$my_string.Contains("world")
    True


$my_string.Replace("world", "hi")

Creating objects

$dog = New-Object -TypeName PSCustomObject

Adding propertties and methods

// properties
$dog | Add-Member -MemberType NoteProperty -Name "Name" -Value "Medor"

// methods
$dog | Add-Member - MemberType ScriptMetthod -Name "Speak" -Value {Write-Host "Woof!"}

creating object with hash table

$dog = [PSCustomObject]@{
    Name = "Medor"
    Age = 10
}

Array

Creating

$my_arr = 25, "test", $False
or
$my_arr = @(25, "test, (Get-Date).DateTime)

Accessing

$my_arr[0] // one item

$my_arr[0,1] // each item


$my_arr[1..5] // from to


$my_arr[-1]

Iteration

$my_arr.ForEach({ $PSItem.Length })

Operator for arrays

$arr_1 = 1, 2, 3
$arr_2 = 4, 5, 6
$arr_1 + $arr_2

$arr_1 * 2

Containment operators

-join

convert array into string join by a given string

$my_arr = 1, 2, 3
$my_arr = $my_arr -join "->"
$my_arr
    1->2->3

Force a type

[String[]]$fruits = "apple", "banana"

Array of objects

$dog_arr = @(
    [PSCustomObject]@{Name = "Rufus"; Age = 10}
    [PSCustomObject]@{Name = "Medor"; Age = 6}
)