Hey, Script Guy! Blog にある記事があります。
簡単にいうと、こういうことが PowerShell のワンライナーでできるよー。というものです。
Fun with the number one in #PowerShell: 1..8 | ForEach {$n="1" * $_;"{0,9} x {0,9} = {1}" -f $n, ("$n * $n" |iex)}; https://t.co/ZJsWhEr3ZV
— Doug Finke (@dfinke) September 6, 2014
ただこのワンライナーでは画像のようにはなりません。
どうせなので、画像のようにやってみましょう。
目次
なにが違うの
例はこのようなワンライナーです。
1..8 | ForEach {$n="1" * $_;"{0,9} x {0,9} = {1}" -f $n, ("$n * $n" |iex)};
実際はこのように出力されます。
1 x 1 = 1 11 x 11 = 121 111 x 111 = 12321 1111 x 1111 = 1234321 11111 x 11111 = 123454321 111111 x 111111 = 12345654321 1111111 x 1111111 = 1234567654321 11111111 x 11111111 = 123456787654321
赤くなくてさみしいのです。
わんらいなー(棒)
い、いちおうパイプラインで繋ぎ続けてるんだからねっ!
画像通りですね。
色の反転だって簡単ですね。
まとめ
下手に赤くするとこういうことになります。
こわい。*1
1..8 ` | % { $n="1" * $_; Write-Host ("{0,9} x {0,9} = " -f $n) -n; $x=("$n * $n" | iex) $x ` | %{ $n=$_; $l=$_ -split ""; [int]$z=($l.length-1)/2; $l ` | where {$_} ` | %{$i=1}{ if($l.length -2 -eq 1) { Write-Host $_ -Fo Red } elseif($i -eq $l.length - 2) { Write-Host $_ } elseif($i -eq $z) { Write-Host $_ -n -Fo Red } elseif($i -lt $z) { Write-Host $_ -n } elseif($i -gt $z) { Write-Host $_ -n }; $i++ } } }
*1:PowerShellで頭の体操