見出し画像

キモかわPowerShell(その4) テキストであそぼう

みなさん、こんにちは。なるーらぼです。
前回は計算をさせてみました。
わたしは電卓を立ち上げるかわりに、よくPowerShellで計算してます。意外と便利ですよ!
さて、今回は「テキスト」を使って遊んでみたいと思います!

テキストってなに

テキストというと大抵は教科書とか参考書のようなものをイメージします。
ここでは文字を並べた単語だったり文章だったりを指すことにします。
プログラミング経験のある方には「文字列」と言ったほうが通りがよいと思います。
ですが、身近な言葉で言い換えていると思ってお付き合いください。

定番のHello Worldを前々回でやりましたが、PowerShellではダブルクォーテーション記号で囲んだところをテキストとみなしています。
ダブルクォーテーション記号だけでなく、シングルクォーテーション記号でも大丈夫です。
次の例はどちらも同じ結果になります。

"Hello world"
'Hello world'

なんや、片方でいいやないの~と思うでしょう。これはこれで便利なので使ってみてください。
たとえば、ダブルクォーテーション記号で囲んだ結果を出力したいときどうしましょう?
逆に「I'm」などといったテキストを出力したいとき、簡単に対応できます。

'ぼくは"Tiktok"なんて使ってません!!'
"オレ's カフェ"

さて、そんなものを出力することはないと思いますが、ダブルクォーテーション記号で囲んだテキストにダブルクォーテーション記号を含めたいぜ…というとき。困りましたね!
実際には困らないのですが、少しだけ知らないといけないことがあります。
それは「ダブルクォーテーション記号で囲んだところがテキストとみなされるのを避ける」方法です。
プログラミング経験のある方には「エスケープ」と言ったほうがいいですね。
あることをすると囲みとしないということです。
普段あまり見慣れない記号なので、どうやって入力するの?と戸惑いますが、正体はバッククォーテーション記号です。
こんなふうにします。

"ぼくは`"パンケーキ`"食べたいわけじゃありませんーー!!"

わたしもこんなテキストを出力するスクリプトを書いたのは初めてです!
ということで、シングルクォーテーション記号で囲んだときも同じだと思ってください。

折り返した文章に挑戦

お次は文章を出力することにトライしてみましょう。
方法はいくつもあります。先ほど知ったばかりのエスケープを使って実現できます。

"じゅげむ、じゅげむ`nごこうのすりきれ"

アルファベットの「n」をエスケープしました。これは改行をあらわす特殊な記号になります。
でもキツくないですか?改行が一つで済めばいいですが、文学作品のどこかを抜き出して出力するとかとなるとこんな記号みたいなもの間違わずに書いていくのは辛いですよね。

もちろん、テキストをカンマで並べて足し算を試みるなんて方法もあります。力業としか言えない…
いちおう書いておきましょうか。

"一本でもにんじん","二足でもサンダル","三艘でもヨット","四粒でもゴマ塩" -join "`n"

やはりこれも限界があります。ムリムリ。
そこで登場するのが次のサンプルです。

@"""むかしむかし、あるところに
おじいさんとおばあさんが住んでいました。
おじいさんは山へ芝刈りに
おばあさんは川へ洗濯に行きました。
などと供述している。
"""@

アットマークをつけて、ダブルクォーテーション記号を3つ続ける、そこから文章を書き始める。
最後にもダブルクォーテーション記号3つを続けて、最後をアットマークで締める。
これだけで文章を出力することができます。
難しそうな言い方をすると、ヒアストリングというやつです。カッコいいですか?

さいごに

さて、今回はテキストを書くことだけをやってきました。
慣れたら何でもイケそうですね!
いろんな文章を出力して遊んでみてください。
それでは今回はこのあたりで。



この記事が気に入ったらサポートをしてみませんか?