powershell - Please explain, function to add string to first line of a file -


would explain happing in powershell code @ bottom of post?

i got first, lets "hello world" in powershell, , needed these lines of code. works charm, not sure does, exactly.

the questions starts at

$( ,$_; get-content $path -ea silentlycontinue) | out-file $path 

so understand far.

we create function called insert-content. params (input interpeted string , added $path).

function insert-content {   param ( [string]$path ) 

this function does/processes:

process {   $( ,$_; 

i not sure does, guess gets "the input" (the "hello world" before | in "hello world" | insert-content test.txt).

and got -ea silentylycontinue, do?

process {   $( ,$_; get-content $path -ea silentlycontinue) | out-file $path 

it appreciated if explain these 2 parts

$( ,$_;
-ea silentylycontinue

code needed/used: add string first line of doc.

function insert-content {    param ( [string]$path )   process {     $( ,$_;get-content $path -ea silentlycontinue) | out-file $path   }  }  "hello world" | insert-content test.txt 

process {...} used applying code inside scriptblock (the {...}) each parameter argument function reads pipeline.

$_ automatic variable containing current object. comma operator , preceding $_ converts string value string array single element. it's not required, though. code work $_ instead of ,$_.

get-content $path reads content of file $path , echoes success output stream array of strings (each line separate string).

the ; separates 2 statements ,$_ , get-content $path each other.

| out-file $path writes output file $path.

the subexpression operator $() required decouple reading file writing it. can't write file when process reading it, subexpression ensures reading completed before writing starts.

basically whole construct

$( ,$_;get-content $path -ea silentlycontinue) | out-file $path

echoes input pipeline (i.e. "hello world") followed current content of file $path (effectively prepending input string file content) , writes file.

the -ea silentlycontinue (or -erroraction silentlycontinue) suppresses error thrown when $path doesn't exist.


Comments

Popular posts from this blog

OpenCV OpenCL: Convert Mat to Bitmap in JNI Layer for Android -

android - org.xmlpull.v1.XmlPullParserException: expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope -

python - How to remove the Xframe Options header in django? -