What does script: do in powershell? -


i've seen syntax on variable before , not quite sure is:

$script:foo = "bar" 

the syntax $script:foo commonly used modify script-level variable, in case $foo. when used read variable, $foo sufficient. example rather write this:

verbose-script.ps1 $script:foo = '' function f { $script:foo } 

i write (less verbose , functionally equivalent):

script.ps1 $foo = '' function f { $foo } 

where $script:foo crucial when want modify script-level variable within scope such function or anonymous scriptblock e.g.:

ps> $f = 'hi' ps> & { $f; $f = 'bye';$f } hi bye ps> $f hi 

notice $f outside scriptblock did not change though modified bye within scriptblock. happened modified local copy of $f. when don't apply modifier script: (or global:), powershell perform copy-on-write on higer-scoped variable local variable same name.

given example above, if wanted make permanent change $f, use modifier script: or global: e.g.:

ps> $f = 'hi' ps> & { $f; $global:f = 'bye';$f } hi bye ps> $f bye 

Comments

Popular posts from this blog

asp.net - repeatedly call AddImageUrl(url) to assemble pdf document -

java - Android recognize cell phone with keyboard or not? -

iphone - How would you achieve a LED Scrolling effect? -