LoginSignup
0
0

[PowerShell]別ファイルで定数、変数を定義して読み込んで出力するスクリプト

Posted at

こんにちは!れーあです。
今回は定数、変数を別ファイルから読み込んでスクリプト内で使用するスクリプトを作っていきます。

それではどうぞ。

前提情報

スクリプト実行環境

PS C:\Users\user> $PSVersionTable.PSVersion

Major  Minor  Build  Revision
-----  -----  -----  --------
5      1      19041  4170

スクリプト内容

今回のスクリプトは下記です。別ファイルを用意するので使用するのは2つのスクリプトです。

スクリプト①処理内容:
 定数と変数を定義する。
  ※定数:固定値、変数:状況によって変化する値

Read_env.ps1
# 定数定義
$global:Test_Shell = "Hello, World! My directory is"

# 変数定義
$global:Pass_Shell = pwd

スクリプト②処理内容:
 「Read_env.ps1」ファイルを読み込む。
 読み込んだ内容をもとに文字列を作成してテキストファイルに出力する。

Main_File_Read.ps1
# 外部ファイルを読み込んで定数、変数を定義する
Invoke-Expression (Get-Content "C:\Users\user\Desktop\Read_env.ps1" -Raw)

# 読み込んだ変数、定数の値を表示させる
Write-Host $global:Test_Shell $global:Pass_Shell
Write-Output "$global:Test_Shell $global:Pass_Shell" > "C:\Users\user\Desktop\export.txt"

気になる箇所

「$global:」:スコープ修飾子と呼ばれるどこからでも呼び出せる変数、定数を定義することができるようになります。

「Invoke-Expression (Get-Content ~ -Raw」:ファイル内の文字列を読み込んで今回のスクリプトの中で使用することができるようになります。

実際に動かしてみた

デスクトップに今回のスクリプトファイル2つともを配置します。
「Read_env.ps1」ファイルは読み込むだけなので実際には手動で実行は行いません。
image.png

「Main_File_Read.ps1」を実行すると、デスクトップ上に「export.txt」が作成されます。
image.png

「export.txt」ファイルの内容を確認すると期待通りの値が出力されていました。
image.png

おわりに

というわけで以上です。
内容としてはごく単純なものではあるのですが、別ファイルを読み込んで環境変数を定義するというのは仕事で使用するスクリプトではよく見かける技術だなと思ったので、今回整理のために作成してみました。

参考

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