mirror of
https://github.com/fleschutz/PowerShell.git
synced 2024-11-23 00:13:36 +01:00
3.8 KiB
3.8 KiB
write-code.ps1
This PowerShell script generates and writes PowerShell code on the console (no AI, just for fun).
Parameters
PS> ./write-code.ps1 [[-color] <String>] [[-speed] <Int32>] [<CommonParameters>]
-color <String>
Specifies the text color to use ("green" by default)
Required? false
Position? 1
Default value green
Accept pipeline input? false
Accept wildcard characters? false
-speed <Int32>
Specifies the speed in milliseconds per code line (500 by default)
Required? false
Position? 2
Default value 500
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.
Example
PS> ./write-code.ps1
try {
...
Related Links
https://github.com/fleschutz/PowerShell
Script Content
<#
.SYNOPSIS
Writes code
.DESCRIPTION
This PowerShell script generates and writes PowerShell code on the console (no AI, just for fun).
.PARAMETER color
Specifies the text color to use ("green" by default)
.PARAMETER speed
Specifies the speed in milliseconds per code line (500 by default)
.EXAMPLE
PS> ./write-code.ps1
try {
...
.LINK
https://github.com/fleschutz/PowerShell
#>
param([string]$color = "green", [int]$speed = 500) # milliseconds
[string]$global:Tabs = ""
function GetRandomCodeLine {
$Generator = New-Object System.Random
$Num = [int]$Generator.next(0, 31)
switch($Num) {
0 { return $Tabs + "`$count = 0" }
1 { return $Tabs + "`$count++" }
2 { return $Tabs + "exit 0 # success" }
3 { return $Tabs + "`$Files = Get-ChildItem C:" }
4 { return $Tabs + "Start-Sleep -seconds 1" }
5 { return $Tabs + "`$Generator = New-Object System-Random" }
6 { $global:Tabs = " "; return "} else {" }
7 { $global:Tabs = " "; return "} catch {" }
8 { $global:Tabs = " "; return "} elseif (`$count -eq 0) {" }
9 { return $Tabs + "Write-Host `"Hello World`" " }
10 { $global:Tabs = " "; return "while (`$true) {" }
11 { return $Tabs + "# next part:" }
12 { return $Tabs + "exit 1 # failed" }
13 { return $Tabs + "return 1" }
14 { return $Tabs + "return 0" }
15 { return $Tabs + "Write-Progress `"Working...`" " }
16 { return $Tabs + "[bool]`$KeepAlive = `$true" }
17 { return $Tabs + "# Copyright © 2023 write-code.ps1. All Rights Reserved." }
18 { $global:Tabs = " "; return "for ([int]`$i = 0; `$i -lt 42; `$i++) {" }
19 { return $Tabs + "`$StopWatch = [system.diagnostics.stopwatch]::startNew()" }
20 { return $Tabs + "[int]`$Elapsed = `$StopWatch.Elapsed.TotalSeconds" }
21 { $global:Tabs = " "; return "if (`$count -eq 42) {" }
22 { $global:Tabs = " "; return "} finally {" }
23 { return $Tabs + "throw `"Can't open file`" " }
24 { return $Tabs + "Start-Sleep -milliseconds 42" }
25 { return $Tabs + "`$Choice = Read-Host `"Red or blue pill?`"" }
26 { return $Tabs + "[int]`$Answer = 42" }
27 { $global:Tabs = ""; return "}" }
28 { $global:Tabs = " "; return "try {" }
29 { $global:Tabs = " "; return "foreach(`$Row in `$Table) {" }
30 { $global:Tabs = " "; return "foreach(`$File in `$Files) {" }
}
}
try {
while ($true) {
Write-Host -foreground $color "$(GetRandomCodeLine)"
Start-Sleep -milliseconds $speed
}
exit 0 # success
} catch {
"⚠️ Error in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])"
exit 1
}
(generated by convert-ps2md.ps1 using the comment-based help of write-code.ps1 as of 08/06/2023 21:36:18)