Как заставить PowerShell читать файл в виде одной строки, когда он считает, что есть несколько строк? - PullRequest
0 голосов
/ 10 октября 2018

У меня есть входной файл со следующими строками:

1000095710|SavRx
1000124602|Mason’s Pharmacy
1001130436|Regence
1001314900|HealthE Systems
1001322929|IT management

, который я создал с помощью строки:

$line = $numValueYouSee + "|" + $fd.Replace("Client", "") #Client used to say ClientNameOfClientYouSeeNowAsSavRx

Когда я читаю новый выходной файл с помощью PowerShell, используя $FileText = gc "Path\To\File.txt", он читает строки следующим образом:

1000095710
|SavRx

1000124602
|Mason’s Pharmacy

1001130436
|Regence

1001314900
|HealthE Systems

1001322929
|IT management

Я могу проверить строки файла, просто нажимая клавиши со стрелками, но в Notepad ++ я вижу дополнительные CR-LF.Как я могу исправить этот нелепый вывод на правильный вывод?

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Похоже, ваши поля данных имеют конечные символы CR.Демонстрация:

PS C:\Temp> <b>$s = "1000095710`r|SavRx`r`r`n1000124602`r|Mason's Pharmacy`r`r`n"</b>
PS C:\Temp> <b>[IO.File]::WriteAllText('c:\temp\out.txt', $s)</b>
PS C:\Temp> <b>Get-Content .\out.txt</b>
1000095710
|SavRx

1000124602
|Mason's Pharmacy

Вы можете удалить их, обрезав поля перед созданием вывода.

$line = $numValueYouSee.Trim() + "|" + $fd.Replace("Client", "").Trim()
0 голосов
/ 10 октября 2018

Я тоже не могу повторить вашу проблему.Возможно, вам придется снова сохранить файл из блокнота.Возможно, в тексте есть скрытое форматирование, например, «n»

. Вы можете попробовать это:

$FileText = Import-Csv Path\To\File.txt -Header Number,Type -Delimiter "|" -Encoding Default
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...