はじめに
もうすぐクリスマスですね!🎄
エンジニアの私は「せっかくエンジニアなんだから、コードで友達にサプライズを仕掛けたい」と考えました。
プログラミングを知らない友達に、「黒い画面(ターミナル)にコマンドを打つ」というハッカー映画のような体験をプレゼントしつつ、画面いっぱいのクリスマスツリーと音楽を届けたら面白いんじゃないか?
そう思い立ち、Macで開発し、Windowsの友達に届けるためのワンライナー(一行コマンド)を作ってみました。
完成したもの
友達に送るのは、たった一行のコマンドです。
xmas.sh
iex (irm x.gd/tfTf3)
※「x.gd/tfTf3」は自作したスクリプトの短縮URL
これをWindowsのPowerShellに貼り付けてもらうと……
- ハッキング風の演出(プログレスバーなどが動く)
- Access Granted! と表示される
- メッセージがタイプライター風に流れる
という挙動になります。
仕組み
Windows標準の PowerShell を使っています。
- irm (Invoke-RestMethod): ネット上のコード(Gist)を取得
- iex (Invoke-Expression): 取得したコードを実行
要は、ネットに置いたスクリプトをダウンロードしてその場で実行させているだけです。
シンプルですが、非エンジニアの方には魔法のように見えます。
ソースコード (PowerShell)
xmas.sh
# 画面設定
$Host.UI.RawUI.WindowTitle = "Christmas Surprise Protocol"
Clear-Host
# 色の定義関数
function Print-Color($text, $color) {
Write-Host $text -ForegroundColor $color -NoNewline
}
function Print-Line($text, $color) {
Write-Host $text -ForegroundColor $color
}
# 1. ハッキング風演出
Print-Line "Connecting to Christmas Server..." "Cyan"
Start-Sleep -Milliseconds 800
Print-Color "Bypassing firewall" "Gray"
for($i=0; $i -lt 5; $i++) { Print-Color "." "Gray"; Start-Sleep -Milliseconds 400 }
Write-Host ""
Print-Line "Access Granted." "Green"
Start-Sleep -Milliseconds 800
Print-Line "Downloading Surprise Package..." "Yellow"
# プログレスバー風
Write-Host "[" -NoNewline
for($i=0; $i -lt 30; $i++) {
Print-Color "|" "Green"
Start-Sleep -Milliseconds 50
}
Write-Host "]"
Start-Sleep -Seconds 1
Clear-Host
# 2. ツリー表示
Write-Host ""
Print-Line " ★ " "Yellow"
Print-Line " / \ " "Green"
Print-Line " / \ " "Green"
Print-Line " / o \ " "Green"
Print-Line " /_______\ " "Green"
Print-Line " | | " "DarkYellow"
Write-Host ""
# 3. メッセージを一文字ずつ表示
$message = "Merry Christmas! 素敵なクリスマスを!"
$charArray = $message.ToCharArray()
foreach ($char in $charArray) {
Print-Color $char "White"
Start-Sleep -Milliseconds 100
}
Write-Host ""
Print-Line "From: あなたの名前" "Magenta"
Start-Sleep -Seconds 5
実装の手順
- 上記のコードを自分の好きなメッセージに書き換える。
- GitHub Gistに xmas.sh という名前で保存する。
- ここが重要! 保存後、「Raw」 ボタンを押して、そのURLをコピーする。
- GistのページURLのままだとHTMLが返ってきてしまい、PowerShellがエラーを吐きます。必ず gist.githubusercontent.com/... で始まるURLを使いましょう。
- URLが長すぎるので、Bit.lyなどで短縮する。
- 友達に送りつける!
さいごに
技術の無駄遣い……かもしれませんが、こういう遊び心のあるコードを書くのはとても楽しかったです! 「黒い画面」に抵抗がある友達も、「ハッカーみたいでカッコいい!」と喜んでくれました。
みなさんも今年のクリスマスは、自作コマンドをプレゼントしてみてはいかがでしょうか? Happy Hacking & Merry Christmas🎅

