もくじ
📝 はじめに
PowerShellでプログラムを起動する際、
「起動時にファイルを指定したい」
「オプション付きでツールを実行したい」
と感じたことはありませんか?
そんなときに使うのが、
Start-Process -ArgumentList です。
この記事では、引数を渡してプログラムを起動する基本を、
つまずきやすいポイントも含めて解説します。
- 起動と同時にファイルを開きたい
- コマンドライン引数を使うツールを実行したい
- スクリプトから柔軟に処理を制御したい
✅ このコマンドでできること(要点)
- プログラム起動時に引数を渡せる
- 複数の引数をまとめて指定できる
- GUIアプリ・CLIツールの両方に対応できる
- 自動化・バッチ処理に組み込みやすい
✅ Start-Process -ArgumentList でできること
-ArgumentList は、
プログラム起動時に渡すコマンドライン引数を指定するためのオプションです。
ダブルクリックでは指定できない動作を、
PowerShellから明示的に制御できるようになります。
「起動方法を細かく指定したい」ときに欠かせない指定です。
🧩 基本構文
Start-Process プログラム名 -ArgumentList "引数"
引数は文字列として指定します。
スペースを含む場合は、引用符の扱いに注意が必要です。
▶ 基本的な使い方(まずこれだけ)
🔹 ファイルを指定して起動する
Start-Process notepad -ArgumentList "C:\test\sample.txt"
メモ帳が起動し、指定したファイルが開きます。
ファイルが表示されていれば、引数は正しく渡されています。
🔹 複数の引数を渡す
Start-Process example.exe -ArgumentList "-a -b -c"
複数のオプションをまとめて渡せます。
プログラム側が正しく動作すれば問題ありません。
🛠 よく使われる指定例
🔹 配列として引数を指定する
Start-Process example.exe -ArgumentList @("-a","-b","-c")
配列で指定すると、引数の区切りを意識せずに書けます。
引数が多い場合におすすめです。
🔹 パスに空白を含む場合
Start-Process notepad -ArgumentList '"C:\My Files\sample.txt"'
空白を含むパスは、二重引用符で囲む必要があります。
💼 実務でよく使う使用例(応用)
🔹 バッチファイルに引数を渡す
Start-Process "C:\scripts\backup.bat" -ArgumentList "full"
バッチファイル側で引数を受け取り、処理を分岐できます。
正しく動作すれば、指定した処理が実行されます。
🔹 管理者権限+引数付きで起動する
Start-Process example.exe -ArgumentList "-install" -Verb RunAs
- -ArgumentList で動作指定
- -Verb RunAs で管理者実行
- -Wait で処理完了を待機
🧩 よくある勘違い・つまずきポイント
- 引数とパスの引用符の付け方を間違えやすい
- 複数引数を1つの文字列で渡してしまう
- プログラム側が引数に対応していない場合がある
- 相対パスでは意図通り動かないことがある
🔄 cmdとの違いについて
cmdでは、プログラム名の後ろにそのまま引数を書きます。
PowerShellの Start-Process -ArgumentList は、
起動対象と引数を明確に分けて指定できる点が違いです。
⚠ エラー・うまく動かないときの確認ポイント
- 引数の書き方(引用符・区切り)が正しいか
- プログラムが引数に対応しているか
- パスが正しく指定されているか
- 管理者権限が必要な操作ではないか
🧠 注意点
引数の解釈は、PowerShellではなく起動されるプログラム側
📌 まとめ
- -ArgumentList は起動時の動作指定に必須
- 空白や引用符の扱いがポイント
- 配列指定を使うと安全に書ける
- 次は -Wait や -Verb RunAs と組み合わせると便利
🔎 PowerShellコマンドを探す
やりたいことからコマンドを探せます。
- ファイルを削除したい
- 一覧を表示したい
- 文字列を検索したい
- 条件で絞り込みたい
- エラーや実行できない原因を調べたい
- 引数付きでプログラムを起動したい
- 管理者として実行したい
