param($target = "C:\Dev\Github\WireMock.Net") $header = "// Copyright © WireMock.Net " function Write-Header ($file) { $content = Get-Content $file -Raw # Using -Raw to read the entire file as a single string $filename = Split-Path -Leaf $file if ($content.TrimStart().StartsWith($header.Trim())) { # Write-Host "Skipping existing: $filename" } elseif ($content.TrimStart().StartsWith("// ")) { # Write-Host "Skipping auto-generated file: $filename" } else { Write-Host "Prepend the header for file: $filename" Set-Content $file $header Add-Content $file $content -NoNewline # Writing back to the file without an extra newline } } Get-ChildItem $target -Recurse | ? { $_.Extension -like ".cs" } | % ` { Write-Header $_.PSPath.Split(":", 3)[2] }