PowerShell,変数を定数にして、削除や変更を不可能にする

スポンサーリンク

鍛錬 569

PowerShell,変数を定数に設定して、削除や変更を不可能にする

変数を定数に設定して、削除や変更を不可能にするには Set-Variable にパラメータの -Option を付加して使用します。

以下は、コマンドレット Set-Variable のエイリアスです。

エイリアス
set
sv

 
使用方法は、以下に示す通りです。

sv 定数名 定数の値 -Option Constant

パラメータ

以下は、上記のパラメータについてです。

パラメータ 機能
-Option オプションを設定する。
定数に設定する場合は Constant を指定する。
 
スポンサーリンク

スクリプト

以下は、変数を定数に設定するスクリプト、set_constant.ps1 です。

今回は、変数 $str を定数に設定後、新たな値の格納や、変数の削除を試みています。

関連記事:PowerShell,変数を削除する

# 変数を定数に設定
sv str "AAA" -Option Constant

echo "------------------------"
echo "  定数「`$str」 = $str"
echo "------------------------"



# 定数 $str に文字列 BBB を格納
$str = "BBB"

echo "------------------------"
echo "  定数「`$str」 = $str"
echo "------------------------"



# 変数 $str を削除
rv str

echo "------------------------"
echo "  定数「`$str」 = $str"
echo "------------------------"

実行結果

以下は、スクリプト set_constant.ps1 を実行しています。

PS D:\tmp>
PS D:\tmp> .\set_constant.ps1
------------------------
  定数「$str」 = AAA
------------------------
変数 str は読み取り専用または定数であるため、上書きできません。
発生場所 D:\tmp\set_constant.ps1:12 文字:1
+ $str = "BBB"
+ ~~~~~~~~~~~~
    + CategoryInfo          : WriteError: (str:String) [], SessionStateUnauthorizedAccessException
    + FullyQualifiedErrorId : VariableNotWritable

------------------------
  定数「$str」 = AAA
------------------------
rv : 変数 str は定数または読み取り専用であるため、削除できません。変数が読み取り専用である場合は、Fo
rce オプションを指定して操作を再試行してください。
発生場所 D:\tmp\set_constant.ps1:21 文字:1
+ rv str
+ ~~~~~~
    + CategoryInfo          : WriteError: (str:String) [Remove-Variable], SessionStateUnauthorizedA
   ccessException
    + FullyQualifiedErrorId : VariableNotRemovable,Microsoft.PowerShell.Commands.RemoveVariableComm
   and

------------------------
  定数「$str」 = AAA
------------------------

 
上記に示した通り、変数 $str を定数に設定したため、新たな値の格納や変数の削除を実行してもエラーとなりました。

スポンサーリンク

シェアする

フォローする