流媒體功能,我試圖創建一個模擬的Linux的頭一個功能:(無論是通過或$輸入讀取$ filess)如何寫在PowerShell中
Function head()
{
[CmdletBinding()]
param (
[parameter(mandatory=$false, ValueFromPipeline=$true)] [Object[]] $inputs,
[parameter(position=0, mandatory=$false)] [String] $liness = "10",
[parameter(position=1, ValueFromRemainingArguments=$true)] [String[]] $filess
)
$lines = 0
if (![int]::TryParse($liness, [ref]$lines)) {
$lines = 10
$filess = ,$liness + (@{[email protected]();$false=$filess}[$null -eq $filess])
}
$read = 0
$input | select-object -First $lines
if ($filess) {
get-content -TotalCount $lines $filess
}
}
的問題是,這實際上會閱讀所有內容然後打印第一個,在那裏我想要頭部讀取第一行並忘記其餘部分,以便它可以處理大文件。
該功能如何重寫?
首先,你應該使用'process'塊,因爲'end'(它是隱式'end'塊,你不使用任何)被在所有先前的命令已經完成其執行之後執行。有關如何提前退出管道的提示,可以使用[answer](http://stackoverflow.com/a/34800670)。 – PetSerAl