ラージビッグバナー(970x90)

Windows

【PowerShell】別の.ps1スクリプトや外部プログラムを引数付きで呼び出す

投稿日:

ビッグバナー(piglog)728px

Powershellのスクリプトで複数の処理を順番に呼び出したいときや、すでにいくつか用意されている処理をくっつけたいときなんかに、呼び出し元のスクリプトを用意して各処理を呼び出すなんてことができます。

もちろん、処理に引数を渡すこともできます。実際に動作を確認してみたので、やり方を紹介します。

別のスクリプトを呼び出す方法

以下のスクリプトを用意します。動作を確認するために、カッコ内の処理とします。

  1. 処理1のスクリプト(引数の文字列をテキストファイルに書き出す)
  2. 処理2のスクリプト(書き出したテキストファイルを読み出す)
  3. 呼び出し元のスクリプト

ファイル名はそれぞれ以下とします。

  1. call_ps1_Child_1.ps1
  2. call_ps1_Child_2.ps1
  3. call_ps1_Parent.ps1

それぞれのスクリプトの内容です。

1.引数の文字列をテキストファイルに書き出すスクリプト

2.書き出したテキストファイルを読み出すスクリプト

3.それぞれのスクリプトを呼び出すスクリプト

 

ポイントとして、PowerShell のスクリプトを呼び出す場合は、-ArgumentList オプションの引数にスクリプトファイルのパスを指定しますが、その前に「-Command」を付与する必要があります。これは、タスクスケジューラでPowerShellスクリプトを指定するときと同じ指定の仕方です。

わかりやすいように変数をなくして改行を入れて書いてみると以下のようになります。

 

外部プログラムを呼び出す

処理1で書き出したテキストファイルをメモ帳で開くという動作ににしてみます。

スクリプトの変更箇所は、以下の2点です。

  • 『処理2(テキストファイルを読み出すプログラム)の実行プログラムのパス』に『notepad.exe』を指定
  • 『-ArgumentListオプションにわたす引数』に『処理1で書き出したテキストファイルパス』を指定

 

まとめ

Powershellスクリプトで、別のPowershellスクリプトを呼び出す方法、外部プログラムを呼び出す方法を紹介しました。

Start-Process を利用すれば引数を付与したり、処理が終わるまで次の処理を待つこともできますし、柔軟なプログラムをかけるのではないでしょうか。

やっぱり便利ですね、PowerShell 。以上です。

↓↓↓ 持っていると便利な一冊 ↓↓↓

レクタングル (大)

レクタングル (大)

リンクユニット(レスポンシブ)

-Windows
-,

Copyright© ぴぐろぐ , 2019 All Rights Reserved.