По умолчанию поведение 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
$ содержимое переменной содержит два пункта: "тест », "test1"
В [` WriteAllLines`] (http://msdn.microsoft.com/en-us/library/system.io.file.writealllines.aspx) метод работает с коллекциями, избегая необходимости `-join` массива в одну строку:` [IO.File] :: WriteAllLines ('c: \ test.txt', ("test", '', "Test1")) ` – 2011-07-03 14:53:32