Home > Back-end >  Powershell add text after 20 characters
Powershell add text after 20 characters

Time:12-02

I want to add text after exactly 20 characters inklusiv blanks. Does someone have a short solution with add-content or can post a link where i can read about a way to do so.

My file looks somthing like this:

/path1/path1/path1              /path2/path2/path2         /path3/path3/path3

than an application will read this pahts (not my application and i can not edit it in any way) the application will read these paths and it will read them on their position so if the second path starts 10 characters later it wont recognize it, so i can not simply replace the path or edit it easy sinc the path has not always the same lenght. Why the application reads it that way dont ask me.

So i need to add a string at start than the next string at exactly character 20 and than the next at charcter 40.

CodePudding user response:

You could use the regex -replace operator to inject a new substring after 20 characters:

PS ~> $inject = "Hello Manuel! ..."
PS ~> $string = "Injected text goes: and then there's more"
PS ~> $string -replace '(?<=^.{20})',$inject
Injected text goes: Hello Manuel! ...and then there's more

The regex pattern (?<=^.{20}) describes a position in the string where exactly 20 characters occur between the start of the string and the current position, and the -replace operator then replaces the empty string at said position with the value in $inject

CodePudding user response:

This did it for me

$data.PadRight(20," ") | Out-File -FilePath F:\test\path.txt -NoNewline -Append
  • Related