我在寻找Powershell
cmd来打印目录中任何文件的最后5行数据。Powershell cmd目录结尾
理想
获取内容-tail 5 -Wait。\ test.log中
将打印在尾部从去年5条线的具体文件。如果任何新内容被附加到该文件,它将继续打印。
同样,我想尾随目录中的所有文件。如果有任何文件被修改,请打印内容。
尝试这样的事情,没有工作!
获取内容-tail 5 -Wait。\文件夹* .LOG
我在寻找Powershell
cmd来打印目录中任何文件的最后5行数据。Powershell cmd目录结尾
理想
获取内容-tail 5 -Wait。\ test.log中
将打印在尾部从去年5条线的具体文件。如果任何新内容被附加到该文件,它将继续打印。
同样,我想尾随目录中的所有文件。如果有任何文件被修改,请打印内容。
尝试这样的事情,没有工作!
获取内容-tail 5 -Wait。\文件夹* .LOG
虽然你可以使用-Wait
只有第一个文件的时候都会有它的变化报道使用-Tail
有多个文件。但是,如果您使用工作流并且并行运行命令,则这是可能的。
# Get-Tail.ps1
Workflow Get-Tail
{
param (
[string[]]$Path,
[int]$Tail
)
foreach -parallel ($File in $Path) {
Get-Content -Path $File -Tail $Tail -Wait
}
}
然后运行以下命令:
. .\Get-Tail.ps1
$files = (dir .\folder*.log).FullName
Get-Tail -Path $files -Tail 5
你可以使用一个FileSystemWatcher
对象和Register-ObjectEvent
cmdlet来监视对文件系统所做的更改。类似这样的:
$fw = New-Object System.IO.FileSystemWatcher
$fw.Path = "C:\temp\events\test"
Register-ObjectEvent -InputObject $fw -EventName Changed -SourceIdentifier File.Changed -Action {
#$event
write-host "file changed : $($event.SourceEventArgs.Name)"
get-content $event.SourceEventArgs.fullpath -tail 5 |out-host
} |out-null
#unregister event when done
#Unregister-Event -SourceIdentifier file.changed