目次
はじめに
最近職場が変わって、新しい担当システムのCLI(コマンドライン)ツールがPowerShellベースで提供されていることからPowerShell(ver7系)を勉強しています。
PowerShell とは - PowerShell | Microsoft Learn
職場で貸与されたPCはMacBookPro(2016年版、macOS12)なのですがPowerShellは標準搭載されていません。 なので環境構築のメモと雑感を書き留めました📝
サポート 状況が少し怪しい..🙄
環境構築
MicrosoftのPowerShell の公式製品ドキュメントをみればOKです。
macOS への PowerShell のインストール - PowerShell | Microsoft Learn
- エディタ(公式は Visual Studio Code を推奨)
PowerShell 開発のための Visual Studio Code の使用 - PowerShell | Microsoft Learn
PowerShell - Visual Studio Marketplace
※英語のWebページについて Google翻訳やChome拡張機能(Deeplなど)を駆使すればサクサク読めるはずです。 理解度に自信がなければ、ChatGPTに質問したり要約してもらうのもアリだと思います🛟
あとPowerShell コミュニティはどこも公用語が英語なようです。
CLIツールとして使ってみる
よく使いそうなコマンドレット(PowerShellのコマンド)はMicrosoft.PowerShell.Utility Module - PowerShell | Microsoft Learnにまとまってます。
ピンとこない人はChatGPTにきいたり、Web検索("powershell grep" とか)した方が早いかもしれません。
ターミナル画面を起動して pwsh
と入力するとプロンプトが起動します。
- Hello Worldを表示する
PS > 'Hello World' PS > Write-Output 'Hello World' PS > '{0} {1}' -f 'Hello','World'
- ChromeでYahooのページを開く
PS > Start-Process -FilePath 'Applications/Google Chrome.app/Contents/MacOS/Google Chrome' -ArgumentList 'https://yahoo.co.jp/'
注意点として、ls コマンドのようにシェルのコマンドと被る場合はシェル(ネイティブ側)のコマンドとして判定されることです。 Windows標準搭載版(ver5系)で、エイリアスにたよってbashライクに入力していた人(= 自分)は要注意です。
エイリアスの使用 - PowerShell | Microsoft Learn
スクリプトを書いてみる
スクリプトの実行方法はスクリプトについて - PowerShell | Microsoft Learnにまとまっています。
構文については左上の検索窓(タイトルでフィルター)から探せるハズ。(例えば、比較演算子は演算子について - PowerShell | Microsoft Learnに書かれています)
スクリプトファイルを作って、ターミナル画面から pwsh -f 'スクリプトファイル'
で実行します。
function FizzBuzz { param ( [int]$start = 1, [int]$end = 100 ) $start..$end | ForEach-Object { $number = $_ $output = "" if ($number % 3 -eq 0) { $output += "Fizz" } if ($number % 5 -eq 0) { $output += "Buzz" } # FizzBuzz条件を満たさない場合、数字を表示 if ($output -eq "") { $output = $number } Write-Host $output } } FizzBuzz
Debugging in Visual Studio Code
Visual Studio Code を使用したコンパイル済みコマンドレットのデバッグ - PowerShell | Microsoft Learn
今後に向けた雑感
実はキャッチアップや雑用に忙しく、このブログを書いてる時点でもまだVSCodeのマニュアルに目を通しきれていません💦 普段使い(ファイル探索、Excel参照とか)しているver5系のノリで対応中ですが、早くVSCodeの機能を使いこなして効率よくコーディングしたいなぁ..😗
最後までご覧いただきありがとうございました🙏
以上