To know what the programs does

Get-Process notepad |
Where-Object {
$time = (New-TimeSpan $.StartTime (Get-Date)).TotalSeconds;
($time -lt 180)
} |
ForEach-Object {
"Stop process $($
.id) after $time seconds…";
$_.Kill()
}

please explain what “;” does and explain about the varible they assigned, please explain about what they have assigned to the varialbe, the above program which i got from a book i very complicated to me, can you pleas explain it.

; doesn’t really do anything. It’s a command separator, but it’s unnecessary here.

I don’t understand what you mean by “explain about the variable they assigned.” Maybe we can start with one question at a time?