#!/snap/bin/powershell # Syntax: ./simulate-matrix.ps1 # Description: simulates the Matrix (fun) # Author: Markus Fleschutz # Source: github.com/fleschutz/PowerShell # License: CC0 try { write-progress "Reading Matrix.csv..." $PathToRepo=(get-item $MyInvocation.MyCommand.Path).directory.parent $Table = import-csv "$PathToRepo/Data/Matrix.csv" Clear-Host foreach($Row in $Table) { for ($i = 0; $i -lt 4; $i++) { Write-Host -nonewline $($Row.A); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.B); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.C); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.D); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.E); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.F); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.G); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.H); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.I); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.J); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.K); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.L); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.M); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.N); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.O); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.P); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.Q); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.R); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.S); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.T); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.U); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.V); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.W); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.X); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.Y); Start-Sleep -milliseconds 5 Write-Host -nonewline $($Row.Z); Start-Sleep -milliseconds 5 } Write-Host "" Start-Sleep -milliseconds 200 } exit 0 } catch { write-error "ERROR in line $($_.InvocationInfo.ScriptLineNumber): $($Error[0])" exit 1 }