【PowerShell講座】外部プログラムを実行する

外部プログラムを実行する

PowerShell講座です。

前回は、ファイル入出力について紹介しました。

【PowerShell講座】ファイル入出力

2019.08.22

今回は、外部プログラムの実行について。

環境は、Windows 10(64bit)、PowerShell 6.1.2 です。

それでは、見ていきましょう。



外部プログラムを実行する

PowerShell を使うと様々なことができますが、Windows アプリケーションと組み合わせることで更に便利に使うことができます。

例えば、exe形式の実行ファイルなら、実行ファイル名をコマンドとして入力するだけで使えます。

この辺りはコマンドプロンプトと同様です。

実際にやってみましょう。

メモ帳を起動してみます。

メモ帳のプログラムの実行ファイル名は、notepad.exe です。

下記ファイル名を PowerShell で入力して起動してみます。

notepad

メモ帳が起動したかと思います。

メモ帳

ただし、パスを入力しないと起動しないものもあるので注意しましょう(パスが通っていない場合)。

Start-Process

Start-Process は、プロセスを開始するコマンドレットです。

ちなみにプロセスというのは実行中のプログラムのことです。

オプションは以下のようなものがあります。

-FilePath
実行ファイルのパスを指定する。
-ArgumentList
プロセスを開始するときにパラメータを指定する。
-Credential
処理を実行するアクセス許可を持つユーザーアカウントを指定する。
-Verb
プロセスを開始するときに使用する動詞を指定する。
-Wait
指定したプロセスが完了するまで、次の入力を受け取るのを待つ。

例えば、メモ帳を起動する場合、以下のようなコマンドレットを入力します。

Start-Process -FilePath "C:\Windows\System32\notepad.exe"

先程と同様にメモ帳が起動したかと思います。

ちなみにパスを指定するときに半角スペースなどがなければ、”(ダブルクォーテーション)で囲む必要はありません。

次に、実行ファイル以外を指定してみます。

ドキュメントに適当にテキストファイルを保存してみてください。

私は、test.txt というものを作成して、保存しました。

この場合、以下のように指定してみます(パスは環境によって異なります)。

Start-Process -FilePath C:\Users\Owner\documents\test.txt

私の場合、サクラエディタが起動しました(最近は、Atom を使っているのですが)。

サクラエディタ

実行ファイル以外を指定するとそのファイルを開くことができるプログラムが起動されます。

ファイルに関連付けられているプログラムを起動するわけです。

次は、-ArgumentList を使ってみましょう。

Start-Process -FilePath notepad -ArgumentList C:\Users\Owner\documents\test.txt

同じ結果が得られたかと思います。

最後に

いかがでしょうか。

PowerShell 単体でも強力ですが、他のアプリや従来のコマンドと組み合わせることで可能性は更に広がります。

色々試していきたいと思っています。