プログラム 技術

VSCodeでのPowerShellデバック実行時の引数の渡し方

VSCodeでPowerShellに対して、デバック実行する際にPowerShellスクリプトへ引数を渡す方法をメモとして残します
PowerShellのバージョンは5でも7でも変わりません

名称バージョン
VSCode1.100.2
PSVersion (PowerShell本体のバージョン)7.5.1
PowerShell (VSCodeの拡張機能)2025.0.0

lanch.jsonを作成する

まずは対象となるPowerShellファイルが配置されているフォルダごとをVSCodeで開きます
フォルダを開いたら左側の「Run and Debug」を選択し、「create a launch.json file」クリックします

様々な選択肢がありますが、今回はPowerShellを選択します

選択後、.vscodeというフォルダが作成されその配下に『launch.json』というファイルが作成されます
ここにPowerShellのデバック時の設定等を記載する形となります

引数を設定する

上から順に渡す

作成した『launch.json』に"args"というプロパティを追加してそこに引数として渡したいものを設定します
この方法は実行するPowerShellスクリプトの引数に対して上から順に渡されていきます

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "PowerShell Launch Script",
            "type": "PowerShell",
            "request": "launch",
            // VSCode上で開いているPowershellで実行したいときは、${file}を使用
            // 特定のファイルを指定したいときは、${workspaceFolder}/対象スクリプト名.ps1
            "script": "${file}",
            // "script": "${workspaceFolder}/VScodeTest.ps1",
            "cwd": "${cwd}",
            "args": [
                "Arg1",
                "Arg2",
                "Arg3"
            ]
        }
    ]
}

実行スクリプトとしては以下になります

param(
    $arg1,
    $arg2,
    $arg3
)

Write-Host "Debugging with VSCode"
Write-Host "Argument 1: $arg1"
Write-Host "Argument 2: $arg2"
Write-Host "Argument 3: $arg3"

実行結果は以下のようになります。きちんと設定した引数が実行時に渡されていることが確認できました

パラメータを指定する

続いて、PowerShellスクリプトの対応する引数を指定して渡す方法になります
先ほどと同じように"args"プロパティに対して、実際にPowerShellスクリプトを実行するときのようにして渡す感じになります

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "PowerShell Launch Script",
            "type": "PowerShell",
            "request": "launch",
            // 開いているファイルをしたいときは、${file}を使用
            // 特定のファイルを指定したいときは、${workspaceFolder}/対象スクリプト名.ps1
            "script": "${file}",
            "cwd": "${cwd}",
            "args": [
                "-Arg1 Value1 -Arg3 Value3 -Arg2 Value2"
            ]
        }
    ]
}

実行結果も先ほどと変わらず対応した引数に渡した値となっています

これでVSCode上でPowerShellのデバック実行した際にも引数を渡して実行することができます

会社紹介

私が所属しているアドバンスド・ソリューション株式会社(以下、ADS)は一緒に働く仲間を募集しています

会社概要
「技術」×「知恵」=顧客課題の解決・新しい価値の創造

この方程式の実現はADSが大切にしている考えで、技術を磨き続けるgeekさと、顧客を思うloveがあってこそ実現できる世界観だと思っています
この『love & geek』の精神さえあれば、得意不得意はno problem!
技術はピカイチだけど顧客折衝はちょっと苦手。OKです。技術はまだ未熟だけど顧客と知恵を出し合って要件定義するのは大好き。OKです
凸凹な社員の集まり、色んなカラーや柄の個性が集まっているからこそ、常に新しいソリューションが生まれています

ミッション
私たちは、テクノロジーを活用し、業務や事業の生産性向上と企業進化を支援します

ホームページ
アドバンスド・ソリューション株式会社|ADS Co., Ltd.
アドバンスド・ソリューション株式会社|ADS Co., Ltd.

Microsoft 365/SharePoint/Power Platform/Azure による DX コンサル・シス ...

サイトへ移動

PR

-プログラム, 技術
-