forked from fleschutz/PowerShell
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathwrite-marquee.ps1
executable file
·45 lines (40 loc) · 1.61 KB
/
write-marquee.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<#
.SYNOPSIS
Writes text as marquee
.DESCRIPTION
This PowerShell script writes text as marquee.
.PARAMETER text
Specifies the text to write
.PARAMETER speed
Specifies the marquee speed (60 ms per default)
.EXAMPLE
PS> ./write-marquee "Hello World"
.NOTES
Author: Markus Fleschutz / License: CC0
.LINK
https://github.com/fleschutz/PowerShell
#>
param([string]$text = "PowerShell is powerful! PowerShell is cross-platform! PowerShell is open-source! PowerShell is easy to learn! Powershell is fully documented", [int]$speed = 60) # 60 ms pause
function StartMarquee { param([string]$text)
$Length = $text.Length
$Start = 1
$End = ($Length - 80)
clear-host
write-output ""
write-output "------------------------------------------------------------------------------------"
$StartPosition = $HOST.UI.RawUI.CursorPosition
$StartPosition.X = 2
write-output "| |"
write-output "------------------------------------------------------------------------------------"
foreach ($Pos in $Start .. $End) {
$HOST.UI.RawUI.CursorPosition = $StartPosition
$TextToDisplay = $text.Substring($Pos, 80)
write-host -nonewline $TextToDisplay
start-sleep -milliseconds $speed
}
write-output ""
write-output ""
write-output ""
}
StartMarquee " +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ $text +++ "
exit 0 # success