I want to start powershell.exe
with a scriptblock like this (it's working fine):
Start-Process powershell.exe {
Get-Help
Get-Process
}
But this script doesn't work:
Start-Process powershell.exe {
$string = "123xAbcxEFG"
$split1,$split2,$split3 = $string.Split("x")
Write-Output $split1
Write-Output $split2
Write-Output $split3
sleep 10
}
I think I need Add-Type -AssemblyName "SomeNameSpace"
, but how can I find that namespace? Any intellisense or something like this?
you can use start-job it's actually start new powershell process . and you can do is easy. like this :
start-job
for more help use :
get-help start-job
The problem is with the quotes. It works, if you e.g. put additional single quotes around your double quotes. It also works with triple double quotes.
Start-Process powershell.exe {
$string = """123xAbcxEFG"""
$split1,$split2,$split3 = $string.split("""x""")
Write-Output $split1
Write-Output $split2
Write-Output $split3
sleep 10
}
How I changed your code to catch the error (without the additional double quotes):
$ScriptBlock = {
$string = "123xAbcxEFG"
$split1,$split2,$split3 = $string.split("x")
Write-Output $split1
Write-Output $split2
Write-Output $split3
sleep 10
}
Start-Process powershell -argumentlist "-noexit -command $ScriptBlock"
you can use start-job it's actually start new powershell process . and you can do is easy.
like this :
$script= {get-help "dir"}
start-job -scriptblock $script