это поведение по умолчанию, что Set-Content добавляет новую строку, потому что он позволяет вам устанавливать контент с массивами строк и получать их по одному на строку.В любом случае Get-Content игнорирует последнюю «новую строку» (если позади нет пробелов).Обойти Set-Content:
([byte[]][char[]] "test"), ([byte]13), ([byte]10) ,([byte[]][char[]] "test1") |
Set-Content c:\test.txt -Encoding Byte
или использовать намного проще [io.file]::WriteAllText
Можете ли вы указать точную ситуацию (или код)?
, например, если хотитеигнорировать последнюю строку при получении контента это будет выглядеть так:
$content = Get-Content c:\test.txt
$length = ($content | measure).Count
$content = $content | Select-Object -first ($length - 1)
, но если вы просто сделаете:
"test","test1" | Set-Content C:\test.txt
$content = Get-Content C:\test.txt
$content
переменная содержит два элемента: "test","test1"