我需要将几个日志文件(在写入时)输出到 shell。
在我的脚本的 unix 版本中,这是通过tail -f output\worker*.log
. 注意通配符。
在 Powershell 我试过Get-Content -Path "output\worker*.log" -Wait
了,但这只会将它可以找到的第一个日志文件打印到 shell。
为了完成,这是我调用我的程序的代码:
foreach ($worker in $workers)
{
Write-Host " Start $worker in background"
$block = {& $args[0] $args[1] $args[2] $args[3] $args[4] $args[5] $args[6] 2> $args[7] > $args[8]}
start-job -name $worker -scriptblock $block -argumentlist `
"$strPath\worker\bin\win32\php.exe", `
"-q", `
"-c", `
"$strPath\worker\conf\php_win32.ini", `
"$strPath\worker\bin\os-independant\logfilefilter\logfilefilter.php", `
"-f", `
"$strPath\worker\$worker\conf\logfilefilter-$worker.xml", `
"$strPath\output\$worker-error.log", `
"$strPath\output\$worker.log"
}
Get-Content -Path "output\worker*.log" -Wait
在我的测试用例中,有 8 个工作人员和日志文件(output\worker01.log
, output\worker02.log
, output\worker03.log
, output\worker04.log
, output\worker05.log
, output\worker06.log
, output\worker07.log
, output\worker08.log
)
是否有解决方法来输出所有这些日志文件?或者是否可以从后台进程复制标准输出流以在外壳中打印它?