LoginSignup
3
1

More than 5 years have passed since last update.

ElixirからPowerShellを起動する

Last updated at Posted at 2018-06-21

Fukuoka.exの技術コミュニティで、アドバイザーズを担当してるtwibeeことenpedasiといいます。よろしくお願い致します。

はじめに

ElixirのSystem.cmd」関数を使えば、外部コマンドであるOSのコマンドを実行することができます。それは、Windows環境下にあっても同じです

大人の事情でPowerShellコマンドを実行しないといけない場合は
どのようにすれば良いのでしょうか?

Powershellも起動できる

いきなり結論ですが、シェルコマンドとしてPowershellを実行します。

System.cmd "Powershell", ["pscript.ps1"]

作業フォルダ

作業フォルダには注意が必要です。

プロジェクトフォルダの直下にps1というフォルダを作成し、Powershellのps1
を置いてpowershellスクリプトを実行する例は、このようになります。

System.cmd "Powershell", ["ps1/pscript.ps1"]

Powershellのスクリプトで、以下のようなコードを書いた場合はどうなるでしょうか?

ps1/pscript.ps1
copy-item a.csv b.csv

これは、ps1フォルダの中が対象でなく、プロジェクトフォルダのa.csvを同フォルダのb.csvにコピーする挙動となります。

あくまで、作業フォルダの対象はプロジェクトフォルダということになります。

おわりに

ElixirとPowerShell。相当異色な組み合わせですが、PowerShellのパイプラインはElixirと本質的に近いものがあり、意外と悪くはないと思います(個人の感想です)。

スケジューラである elixir-quantum を使えば、Windowsのタスクスケジューラと併用して、スケジューラを起動することも可能です。(fukuoka.exでのquantumの紹介事例はこちら)

大人の事情で仕方がない場合も、華麗にソリューションしてしまいましょう!

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1