我在尋找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