先日の出来事
年下の先輩から「batファイルが動かないんですけど〜泣」と質問があった。
※batファイル=WindowsのPCに「これやっといて」と命令するメモみたいなもの。
一応Teamsでbatを送ってもらい自分の環境で実行すると問題なく動く。 中身を見た感じAWSのコマンドを実行するバッチなので、「AWSのCLIが入ってないんだろうな~」と思いながら「どんなエラーがでてますか?」と聞きつつ画面を見に行ったら、まさかのPCがアップルマーク。Macかよ!
君は今、Jリーグの選手をプレミアリーグの試合に投入しようとしている。。
逆にわかりづらいサッカー解説
「WindowsとMacはJリーグとプレミアリーグみたいなもん」
ちょっと整理しよう。OSってのはPCを動かす基本ソフトのことで、WindowsとMacはそこが根本的に違う。
WindowsとMacどちらも立派なPCだ。 Jリーグもプレミアリーグもどちらも立派なサッカーだ。(僕はJリーグファンだからレベルの話やアンチはやめて)
でもリーグが違えば登録システムが違う。 ルールも違う。言語も違う。管轄も違う。
そこに突然、Jリーグ登録の選手(.batファイル)を プレミアリーグの公式戦(Mac)に出場させようとした。
リーグの登録システム(OS)が言う。
「君、選手登録されてないよ」
それが「動かない」の正体だ。(たぶん)
プレミアでプレーできない。じゃあどうするか。移籍させればいい。
移籍手続きが必要だ。
そしてその移籍手続き = .commandに変換
Jリーグで活躍していた選手(batの処理内容)を 正式な移籍手続き(.commandへの書き直し)を経て プレミアリーグ(Mac)に送り込む。
サッカーというやりたいこと(PCでやりたい処理)は変わらない。 ただリーグの規格に合わせて契約書(構文)を書き直すだけだ。
これで、試合にでて同じポジションで同じように動ける。(こじつけ)
ちなみに拡張子だけ.commandに変えて中身そのままは、移籍手続きでJリーグの登録書類を表紙だけプレミアリーグ仕様っぽく変えて中身は日本語そのまま提出みたいなことなので普通に却下された状態。それじゃあ機能しない。
少しだけ正しい説明
一応ちゃんと書いておくと:
- .batはWindows専用、コマンドプロンプト上で動くスクリプト
- Macにはコマンドプロンプトがないのでそもそも実行環境が存在しない
- Macで同じことをやりたいなら拡張子を.batから.commandに変えて、中身をシェルスクリプトで書き直す
- 拡張子だけ変えても動かない、中身も書き直すこと←これが一番大事
ここだけ読めばこの記事いらなかったかもしれない。
結論
つまり、WindowsとMacはJリーグとプレミアリーグくらい違う。 どっちもPCだし、どっちもサッカーをやることは変わらない。 ただ、リーグ(OS)をまたぐには手続きが必要ってことだ。(たぶん)
細かいことはAIに聞いて!

コメント