PowerShell/docs/write-animated.md

96 lines
2.4 KiB
Markdown
Raw Permalink Normal View History

2024-11-08 12:38:20 +01:00
The *write-animated.ps1* Script
===========================
2021-11-08 21:36:42 +01:00
2024-05-19 10:25:56 +02:00
This PowerShell script writes text centered and animated to the console.
2021-11-08 21:36:42 +01:00
2023-07-29 10:04:38 +02:00
Parameters
----------
2021-11-08 21:36:42 +01:00
```powershell
2024-11-08 12:35:11 +01:00
/home/markus/Repos/PowerShell/scripts/write-animated.ps1 [[-text] <String>] [[-speed] <Int32>] [<CommonParameters>]
2021-11-08 21:36:42 +01:00
2024-05-19 10:25:56 +02:00
-text <String>
Specifies the text line to write ("Welcome to PowerShell" by default)
2021-11-08 21:36:42 +01:00
Required? false
Position? 1
2024-05-19 10:25:56 +02:00
Default value Welcome to PowerShell
2021-11-08 21:36:42 +01:00
Accept pipeline input? false
Accept wildcard characters? false
2024-05-19 10:25:56 +02:00
-speed <Int32>
Specifies the animation speed per character (10ms by default)
2021-11-08 21:36:42 +01:00
Required? false
Position? 2
2024-05-19 10:25:56 +02:00
Default value 10
2021-11-08 21:36:42 +01:00
Accept pipeline input? false
Accept wildcard characters? false
[<CommonParameters>]
This script supports the common parameters: Verbose, Debug, ErrorAction, ErrorVariable, WarningAction,
WarningVariable, OutBuffer, PipelineVariable, and OutVariable.
```
2023-07-29 10:04:38 +02:00
Example
-------
2021-11-08 21:36:42 +01:00
```powershell
2024-05-19 10:25:56 +02:00
PS> ./write-animated.ps1
(watch and enjoy)
2021-11-08 21:36:42 +01:00
```
2023-07-29 10:04:38 +02:00
Notes
-----
2022-11-17 19:46:02 +01:00
Author: Markus Fleschutz | License: CC0
2021-11-08 21:36:42 +01:00
2023-07-29 10:04:38 +02:00
Related Links
-------------
2021-11-08 21:36:42 +01:00
https://github.com/fleschutz/PowerShell
2023-07-29 10:04:38 +02:00
Script Content
--------------
2022-11-17 20:05:34 +01:00
```powershell
2022-11-17 20:02:26 +01:00
<#
.SYNOPSIS
Writes animated text
.DESCRIPTION
2024-05-19 10:25:56 +02:00
This PowerShell script writes text centered and animated to the console.
.PARAMETER text
Specifies the text line to write ("Welcome to PowerShell" by default)
.PARAMETER speed
Specifies the animation speed per character (10ms by default)
2022-11-17 20:02:26 +01:00
.EXAMPLE
2024-05-19 10:25:56 +02:00
PS> ./write-animated.ps1
(watch and enjoy)
2022-11-17 20:02:26 +01:00
.LINK
https://github.com/fleschutz/PowerShell
.NOTES
Author: Markus Fleschutz | License: CC0
#>
2024-05-19 10:25:56 +02:00
param([string]$text = "Welcome to PowerShell", [int]$speed = 10) # 10ms
function WriteLine([string]$line) {
[int]$end = $line.Length
$startPos = $HOST.UI.RawUI.CursorPosition
$spaces = " "
[int]$termHalfWidth = 120 / 2
foreach($pos in 1 .. $end) {
$HOST.UI.RawUI.CursorPosition = $startPos
Write-Host "$($spaces.Substring(0, $termHalfWidth - $pos / 2) + $line.Substring(0, $pos))" -noNewline
Start-Sleep -milliseconds $speed
2022-11-17 20:02:26 +01:00
}
2023-07-29 09:45:37 +02:00
Write-Host ""
2022-11-17 20:02:26 +01:00
}
2023-07-29 09:45:37 +02:00
try {
2024-05-19 10:25:56 +02:00
WriteLine $text
2023-07-29 09:45:37 +02:00
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
2022-11-17 20:02:26 +01:00
}
2022-11-17 20:05:34 +01:00
```
2022-11-17 20:02:26 +01:00
2024-11-20 11:52:20 +01:00
*(generated by convert-ps2md.ps1 as of 11/20/2024 11:52:01)*