2017-05-31 34 views
2

在Unix外殼批處理的​​子shell,你可以這樣寫:擊/在PowerShell中

(cmd1 ; cmd2) | cmd3 

在Windows批量,你可以寫這個

(cmd1 & cmd2) | cmd3 

在這兩種情況下,CMD1的輸出並且cmd2在stdin上傳遞給cmd3。

是否有可能在Powershell中做同樣的事情?

我還沒有找到允許這個的有效語法。我期望一個語句塊的工作,像這樣的,但它並不:

{ cmd1 ; cmd2) | cmd3 

我可以得到它通過聲明一個函數的工作:

function f() { 
    cmd1 
    cmd2 
} 
f | cmd3 

是否有語法,允許這要在線完成?

回答

0

我想這樣的作品:

Invoke-Command {cmd1; cmd2} | cmd3 

documentation

的調用命令cmdlet運行在本地或遠程計算機 上的命令並返回的命令,包括錯誤的所有輸出。

...

您也可以使用本地計算機上調用命令來評價或運行 在腳本塊作爲命令的字符串。 Windows PowerShell會將 腳本塊轉換爲命令,並立即在當前作用域中運行該命令,而不是僅在命令行中回顯該字符串。