我最近一直在玩PowerShell,并编写了以下脚本:
$scriptBlock =
{
Start-Sleep -Seconds 1
Write-Host 'Hello world!'
Start-Sleep -Seconds 1
Write-Host ([DateTime]::Now).TimeOfDay.TotalMilliseconds
Start-Sleep -Seconds 1
exit -1
}
$encodedCommand = [System.Convert]::ToBase64String(
[System.Text.Encoding]::Unicode.GetBytes($scriptBlock))
& $ps -NonInteractive -NoProfile -ExecutionPolicy Unrestricted `
-EncodedCommand $encodedCommand
输出
Hello world! 70803964,7878 Hello world! 70803964,7878
第一个Hello world
在1秒后被写入控制台,然后有一个延迟(好吧,它做我想要的)并显示毫秒数。输出的后半部分立即写入控制台 - 就像捕获脚本输出并将其写入控制台一样。
任何人都可以提供帮助 - 我只想要输出的前半部分(没有像2>&1
这样的基本重定向工作。