powershellの"&"の意味とは!?
まずこのアンドマークには別名が存在しており
名前を「アンパサンド」という
powershellにおけるアンパサンドは「実行演算子」と呼ばれる役割が与えられており
文字列をコードとして認識して実行することができます。
"&"を使ったサンプルコード
&を使った実験です。
サンプルコードではGet-Processを文字列として変数$string_codeに格納し二つの方法 表示します。
パターンA:通常の文字列として表示
パターンB: コードとして実行し出力 Get-Processは""で囲まれているので文字列として普段は評価されますが、&を先頭に付け ることでコードとして評価できるようになるのです。
# 変数宣言 $string_code = "Get-Process" #パターンA:通常の文字列として出力" $string_code #パターンB: コードとして実行して出力” & $string_code
実行結果
パターンA:通常の文字列として出力 Get-Process パターンB: コードとして実行して出力 Handles NPM(K) PM (K) WS (K) CPU(s) Id SI Process Name 257 373 3540 9792 170000 aesm_service 12536 30108 1.20 9956 1 ApplicationFrame Host 147 1956 4496 58600 armsvc 369 5516 11788 58520 ast_CCore 127 1372 4588 10256 0 ast_CCoreComp
このようにコード内にあるコードを実行するプログラミングをメタプログラミングと呼びます
プログラミングのテクニックとしてはかなり高等技術です。
&に隠されたもう一つの意味
powershellパンパサンドにはもう一つの役割が与えられております。
それはバックグランドでの実行です。
バックグラウンドの実行とはユーザーから見えないところで実行してくれる仕組みのことです。
サンプルコード
Get-Process -Name pwsh &
実行例(一例)
発生場所 行:1 文字:24 + Get-Process -Name pwsh & アンパサンド(&)文字は許可されていません。 & 演算子は、今後使用するために予約されています。 アンパサンドを二重引用符で囲 み(&")、文字列の一部として渡してください。
しかし近年はバックグラウンド処理を目的とした&の実行は推奨されておらず
代わりにStart-Jobコマンドを使うことをおすすめしています。
Start-Job -ScriptBlock {Get-Process -Name pwsh}
title:poewrshellの「&」の意味とは
description:powershellにおけるアンパサンドは「実行演算子」と呼ばれる役割が与えられており文字列をコードとして認識して実行することができます。
img:https://boeprox.files.wordpress.com/2016/01/image2.png category_script:page_name.startswith("16")