10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

PowerShellで.ps1ファイルをIncludeしたいのだけど

Last updated at Posted at 2019-09-03

事の顛末

Windows Server上で動くプログラムが必要になったので、PowerShellで書いていたのですが、行数増えてきて見通しが悪くなって気持ち悪くなってきたのと、同じような処理をまとめたくなってきてしまったので、一部の処理を別の.ps1ファイルに分離したくなった次第であります。ちなみにPowerShellは初心者レベルですので、基本ググりながらがんばっている感じです。

結論

ピリオドの後に呼び出したいFileのPathを書けばいいようです。Includeっていうわけではないけれど、呼び出した.ps1が同一コンテキストの中で実行されたことになるみたい。

. ".\some-script.ps1"

ところで、このピリオド何の意味ですか? ああ、Unix系のOSのShellだと、これで普通なんですね。

結局どうしたかというと

いろいろコードをいじりまくった結果、class化したコードを外部のScriptに追い出して、そいつを . でIncludeしたみたいな形にしました。あー、スッキリ。

some-class.ps1
class Something{
    SomeThing(){ ... }
    ToDo(){ ... }
}
main.ps1
. ".\some-class.ps1"
$someClass = NewObject Something
$someClass.ToDo()

参考文献

PowerShell再入門:13. 外部ファイルを実行する
【 source 】コマンド/【 . 】コマンド――シェルの設定を即座に反映させる

10
7
1

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
10
7

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?