スクリプトファイルに引数を与えて実行する

まず初めに、コマンドプロンプトからスクリプトファイルを実行する場合は下記のようにします。-Fオプションをつけてファイル名をダブルクォートで囲んでください。

c:\tmp>powershell -F "./test.ps1"

PowerShell コンソールからスクリプトファイルを実行する場合はファイル名を書くだけでいいです。

PS C:\tmp> ./test.ps1

さて、ここから test.ps1 ファイルに引数をあたえることにします。

スクリプトファイルに引数を与える

まず、スクリプト ps1 に引数を受け取るコードを書きます。冒頭にある param が引数を受け取るところです。

param (
    [string]$your_name,
    [int]$your_age
)

Write-Host "name: $your_name"
Write-Host "age: $your_age"

コマンドプロンプトで上記の ps1 ファイルに引数を与えて実行するには下記のようにします。

c:\tmp>powershell -F "./test.ps1" -your_name "suzuki ichiro" -your_age 45
name: suzuki ichiro
age: 45

PowerShellコンソールで上記の ps1 ファイルに引数を与えて実行するには下記のようにします。

PS C:\tmp> ./test.ps1 -your_name "yamada taro" -your_age 34
name: yamada taro
age: 34

コマンドプロンプトのときのハマリポイント

はまるポイントだけお知らせしておきます。コマンドプロンプトの時に注意です。-F オプションをつけ忘れてもなんとなく動きますが、よく見ると文字列引数の空白以降を受け取っていないので、ご注意くださいませ!

c:\tmp>powershell ./test.ps1 -your_name "suzuki ichiro" -your_age 45
name: suzuki
age: 45