ホームページ » の仕方 » オタク学校学習PowerShell変数、入力および出力

    オタク学校学習PowerShell変数、入力および出力

    単にコマンドを実行することから本格的なスクリプトを書くことに移行するにつれて、データを格納するための一時的な場所が必要になります。これが変数が入るところです.

    シリーズの前の記事を必ず読んでください。

    • PowerShellを使用してWindowsを自動化する方法を学ぶ
    • PowerShellでコマンドレットを使用する方法
    • PowerShellでオブジェクトを使用する方法を学ぶ
    • PowerShellでの書式設定、フィルタリング、および比較の学習
    • PowerShellでリモート処理を使用する方法を学ぶ
    • PowerShellを使用してコンピューター情報を取得する
    • PowerShellでコレクションを操作する

    そして、シリーズの残りの部分を一週間中お楽しみに.

    変数

    ほとんどのプログラミング言語では変数を使用できます。変数は単に値を保持するコンテナです。 PowerShellでは、変数もあり、それらは本当に使いやすいです。これは、「FirstName」という名前の変数を作成し、それに「Taylor」という値を付ける方法です。.

    $ FirstName =“ Taylor”

    ほとんどの人が最初に尋ねるのは、なぜ変数名の前にドル記号を付けるのかということです。これは実際には非常に良い質問です。実際のところ、ドル記号はシェルにとってほんの少しのヒントであり、コンテナ自体ではなく、変数の内容にアクセスしたい(コンテナの内部にあるものと考えてください)ということです。 PowerShellでは、変数名にドル記号は含まれません。つまり、上記の例では、変数名は実際には "FirstName"です。.

    PowerShellでは、変数PSDriveに作成したすべての変数を見ることができます。.

    gci変数:

    つまり、シェルから変数をいつでも削除できます。

    削除アイテム変数:\ FirstName

    変数にも単一のオブジェクトを含める必要はありません。複数のオブジェクトを同じ変数に簡単に格納できます。たとえば、実行中のプロセスのリストを変数に格納したい場合は、それにGet-Processの出力を代入するだけです。.

    $ Proc =取得プロセス

    これを理解するための秘訣は、等号の右側が常に最初に評価されることを覚えておくことです。あなたがしたい場合はこれはあなたが右側にパイプライン全体を持つことができることを意味します.

    $ CPUHogs = Get-Process |ソートCPU - 降順選択 - 最初の3

    CPUHogs変数に、最もCPUを使用している3つの実行中プロセスが含まれるようになります。.

    オブジェクトのコレクションを保持する変数があるときには、注意が必要な点がいくつかあります。たとえば、変数に対してメソッドを呼び出すと、コレクション内の各オブジェクトに対してそのメソッドが呼び出されます。.

    $ CPUHogs.Kill()

    これは、コレクション内の3つすべてのプロセスを強制終了します。変数内の単一のオブジェクトにアクセスしたい場合は、それを配列のように扱う必要があります。.

    $ CPUHogs [0]

    そうすることで、コレクションの最初のオブジェクトになります。.

    捕まってはいけない!

    PowerShellの変数は、デフォルトでは弱く型付けされています。つまり、あらゆる種類のデータを含めることができます。これは、PowerShellに新たに登場する人を常に捉えているようです。!

    $ a = 10

    $ b = '20'

    そのため、変数が2つあります。1つは文字列を含み、もう1つは整数を含みます。それであなたがそれらを追加するとどうなりますか?実際にどの順番で追加するかによって異なります。.

    $ a + $ b = 30

    しながら

    $ b + $ a = 2010

    最初の例では、最初のオペランドは整数値$ aなので、PowerShellは、あなたが数学を実行しようとしていると考えているため、他のオペランドも整数に変換しようとします。ただし、2番目の例では、最初のオペランドは文字列なので、PowerShellは残りのオペランドを文字列に変換して連結します。より高度なスクリプトは、変数を期待している型にキャストすることでこの種の問題を防ぎます。.

    [int] $ Number = 5
    [int] $ Number = '5'

    上記のどちらでも、Number変数に5の値を持つ整数オブジェクトが含まれることになります。.

    入出力

    PowerShellは自動化を目的としているため、可能な限りユーザーに情報の入力を求めることを避けたいと思うでしょう。とは言っても、それを避けることができないときもあるでしょう。そのときには、Read-Hostコマンドレットがあります。使い方はとても簡単です。

    $ FirstName = Read-Host -Prompt '名前を入力してください'

    何を入力しても変数に保存されます。.

    Write-Outputコマンドレットを使用しても、出力の書き込みは簡単です。.

    書き出し「ハウツーオタクロック!」

    明日私達が一緒に学んだことすべてを結びつけるところで私達に加わってください!