PowerShell でのステートメントの使用

Powershell Denosutetomentono Shi Yong



PowerShell は、主にコンピューター システムの制御や管理作業の自動化に使用される、堅牢なコマンド ライン シェルおよびスクリプト言語です。ステートメントの使用は、PowerShell の最も重要な基本の 1 つです。特に、「 使用して 」ステートメントは、リソースを管理し、効率的なコード実行を保証する上で重要な役割を果たします。

この記事では、PowerShell の 'using' ステートメントの構文、目的、実際の応用など、さまざまな側面について説明します。







「using」ステートメントの目的

「using」ステートメントを使用すると、セッションで使用される名前空間を指定できます。名前空間を追加すると、スクリプト モジュールおよびアセンブリからクラスをインポートし、.NET クラスおよびメンバーの使用を簡素化できます。



「using」ステートメントの必須事項

  • 「using」ステートメントは、他のスクリプトまたはモジュール ステートメントの前に指定する必要があります。パラメーターを含む、コメントされていないステートメントをその前に置くことはできません。
  • 「using」ステートメントには変数が存在してはなりません。
  • 「using」ステートメントは、変数のスコープ修飾子「using:」と混同しないでください。両者は目的も意味も異なります。

「using」ステートメントの構文



「using」ステートメントの構文は次のとおりです。





名前空間を使用する < .NET 名前空間 >

次の例の概要を見てみましょう。



名前空間 System.IO を使用する

$バイト = [ ファイル ::ReadAllBytes ( 'D:\c Sharp\Linuxhint1.txt' )
[ ファイル情報 ::新しい ( 'D:\c Sharp\Linuxhint1.txt' )

上記のコードでは、最初に名前空間「System.IO」を指定しました。プログラムの 2 行目 [File]::ReadAllBytes(‘D:c SharpLinuxhint1.txt’) は、指定されたファイルからすべてのバイトを読み取り、$Bytes 変数に格納します。 3 行目では、[FileInfo]::new(‘D:c SharpLinuxhint1.txt’) は FileInfo クラスの新しいインスタンスを作成し、FileInfo オブジェクトを返します。

モジュールの「using」ステートメント

モジュールのクラスをロードするために「using」ステートメントを利用することもできます。

構文

モジュールを使用しています < モジュール名 >

この構文では、「」、完全なモジュール仕様、またはモジュール ファイルへのパスを「モジュール名」の値として使用できます。

「module-name>」がパスの場合は、完全修飾パスまたは相対パスのいずれかを使用できます。スクリプト内に「using」ステートメントが存在する場合、そのスクリプト内で相対パスが解決されます。

」が名前またはモジュール仕様の場合、PowerShell は PSModulePath で指定されたモジュールを検索します。次のキーは、モジュール仕様であるハッシュテーブルを構成します。

モジュール名 - 必要。問題のモジュールに名前を付けます。

オプションのGUID – モジュールの GUID を指定します。

さらに、以下にリストされている 3 つのキーのいずれかを指定する必要があります。

モジュールバージョン – モジュールの最小許容バージョンは、「ModuleVersion」プロパティによって指定されます。

最大バージョン – モジュールの最大許容バージョンを定義します。

必須バージョン – 「RequiredVersion」を使用して、モジュールの正確な必要なバージョンを決定します。他のバージョン キーはこれと一緒に使用できません。

バイナリ モジュールまたはスクリプト モジュールのルート モジュール (ModuleToProcess) は、「using」モジュール宣言によってインポートされます。ネストされたモジュールで指定されたクラス、またはモジュールにドット ソースで指定されているスクリプトは、確実にインポートされません。モジュール外のユーザーが使用できるようにするクラスは、ルート モジュールで指定する必要があります。

以下に例を示します。

モジュールPSReadlineを使用する

アセンブリの「using」ステートメント

「using」ステートメントを使用して、.NET アセンブリから型をプリロードすることもできます。

構文

アセンブリを使用する < .NETアセンブリパス >

この構文では、アセンブリが読み込まれると、そのアセンブリの .NET 型が解析される前にスクリプトにプリロードされます。その結果、プリロードされたアセンブリ型を利用する新しい PowerShell クラスを開発することが可能になります。

「using」ステートメントを「アセンブリ」に適用する例を見てください。

アセンブリ System.Windows.Forms を使用する

このコマンドでは、アセンブリをロードしました。 System.Windows.Forms」 PowerShell で「using」ステートメントを使用します。

ハッシュテーブルキーの「using」ステートメント

ハッシュテーブル 」は、構成データの保存、コマンドレットへの引数の提供、スクリプトへのデータの保存など、さまざまな目的で PowerShell で使用される適応可能なデータ構造です。

文字列「」の暗号化ハッシュ Linuxヒント! 」は、次のスクリプトを介して取得されます。

名前空間 System.Text を使用する
名前空間 System.IO を使用する [ $string = 「リナックスヒント!」
[ $アルゴリズム = 「SHA1」

[ バイト [ $stringbytes = [ Unicodeエンコーディング ::Unicode.GetBytes ( $string )

[ ストリーム $memorystream = [ メモリストリーム ::新しい ( $stringbytes )
$ハッシュフロムストリーム = ファイルハッシュの取得 -入力ストリーム $memorystream `
-アルゴリズム $アルゴリズム
$ハッシュフロムストリーム .Hash.ToString ( )

上記の PowerShell コードは、ファイル操作とエンコードに必要な名前空間をインポートすることから始まります。入力文字列とハッシュ アルゴリズム (この場合は「 SHA1 ”)を定義します。入力文字列は「」を使用してエンコードされます。 ユニコード ” を使用してバイトの配列を作成します。

バイト配列の内容は、「」を構築するために使用されます。 メモリーストリーム ”。メモリストリームからのハッシュ値は、提供されている「SHA1」アルゴリズムを使用して計算されます。 ファイルハッシュの取得 」コマンドレット。スクリプトは、取得したハッシュ値を文字列として出力に出力して終了します。

出力

結論

使用して PowerShell の ” ステートメントは、名前空間、モジュール、またはアセンブリを指定するための強力なツールです。その構文と目的は、リソースを処理し、適切な廃棄を促進し、コードの重複を減らすための標準化された安全なアプローチを提供します。