簡體   English   中英

我如何使用某些字符串分隔符來開始處理powershell.exe?

[英]How can I Start-Process powershell.exe with some string splitter?

我想用這樣的腳本塊啟動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
}

我認為我需要Add-Type -AssemblyName "SomeNameSpace" ,但是如何找到該命名空間? 任何智慧或類似的東西嗎?

問題出在引號上。 如果您將雙引號括起來,則可以使用它。 它也適用於三重雙引號。

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"

您可以使用start-job,它實際上是在啟動新的powershell過程。 而且您可以輕松完成。 像這樣 :

start-job 

如需更多幫助,請使用:

get-help start-job

您可以使用start-job,它實際上是在啟動新的powershell過程。 而且您可以輕松完成。 像這樣 :

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM