miya’s blog

プログラミングの学習を通じて得た知識や感じたことをシェアするブログです。

MacBookProでPowerShellをつかってみる

目次

はじめに

最近職場が変わって、新しい担当システムのCLIコマンドライン)ツールがPowerShellベースで提供されていることからPowerShell(ver7系)を勉強しています。

PowerShell とは - PowerShell | Microsoft Learn

職場で貸与されたPCはMacBookPro(2016年版、macOS12)なのですがPowerShellは標準搭載されていません。 なので環境構築のメモと雑感を書き留めました📝

サポート 状況が少し怪しい..🙄

環境構築

MicrosoftPowerShell の公式製品ドキュメントをみればOKです。

macOS への PowerShell のインストール - PowerShell | Microsoft Learn

PowerShell 開発のための Visual Studio Code の使用 - PowerShell | Microsoft Learn

PowerShell - Visual Studio Marketplace

Visual Studio Code での基本的な編集

※英語のWebページについて Google翻訳やChome拡張機能(Deeplなど)を駆使すればサクサク読めるはずです。 理解度に自信がなければ、ChatGPTに質問したり要約してもらうのもアリだと思います🛟

あとPowerShell コミュニティはどこも公用語が英語なようです。

CLIツールとして使ってみる

よく使いそうなコマンドレット(PowerShellのコマンド)はMicrosoft.PowerShell.Utility Module - PowerShell | Microsoft Learnにまとまってます。

ピンとこない人はChatGPTにきいたり、Web検索("powershell grep" とか)した方が早いかもしれません。

ターミナル画面を起動して pwsh と入力するとプロンプトが起動します。

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の機能を使いこなして効率よくコーディングしたいなぁ..😗

最後までご覧いただきありがとうございました🙏

以上