如何使用一些字符串拆分器开始处理powershell.exe?

时间:2016-10-03 09:59:53

标签: powershell intellisense powershell-v4.0

我想用这样的脚本块启动 A B 1: 1 1 2: 2 2 3: 3 3 4: NA 4 5: NA 5 (它工作正常):

powershell.exe

但是这个脚本不起作用:

Start-Process powershell.exe {
  Get-Help 
  Get-Process
}

我认为我需要Start-Process powershell.exe { $string = "123xAbcxEFG" $split1,$split2,$split3 = $string.Split("x") Write-Output $split1 Write-Output $split2 Write-Output $split3 sleep 10 } ,但我怎样才能找到该命名空间?任何intellisense或类似的东西?

3 个答案:

答案 0 :(得分:2)

问题在于引号。它是有效的,如果你是在双引号周围添加额外的单引号。它也适用于三重双引号。

Start-Process powershell.exe  {
$string = """123xAbcxEFG"""
$split1,$split2,$split3 = $string.split("""x""")
Write-Output $split1
Write-Output $split2
Write-Output $split3
sleep 10
}

我如何更改代码以捕获错误(没有额外的双引号):

$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"

答案 1 :(得分:1)

你可以使用start-job实际启动新的PowerShell流程。你可以做到很容易。像这样:

start-job 

获取更多帮助:

get-help start-job

答案 2 :(得分:0)

你可以使用start-job实际启动新的PowerShell流程。你可以做到很容易。 像这样:

$script= {get-help "dir"}
start-job -scriptblock $script