I got excited with PowerShell ScriptBlock at first but I was confused recently with its executing ordering inside blocks. For example:

```
$test_block = {
  write-host "show 1"
  ps
  write-host "show 2"
  Get-Date
}

```

The output by calling $test\_block.Invoke():

```
show 1
show 2
<result of command 'ps'>
<result of command 'get-date'>

```

Do commands who output something run first?