Лучший отвечающий
Странности вывода текста в файл

Вопрос
-
Добрый день.
Есть текстовая переменная отформатированная как мне нужно с переносами строк. При выводе в консоль все верно показывает, при выводе скажем командой Out-Gridview или если посылать ее в качестве текста тела по почте тоже все хорошо. При выводе в текстовый файл, если открывать блокнотом, то строки сливаются все в одну, если же открыть скажет Notepad++ все ок, если выполнить Get-Content этого файла в консоли тоже все верно показывает. В чем дело? Раньше я всегда выводил таким образом в файл и при просмотре блокнотом все нормально было.
19 декабря 2012 г. 8:05
Ответы
-
Вместо `n используйте `r`n.
$var -replace "`n","`r`n" | Out-File result.txt
- Помечено в качестве ответа SteFFun 19 декабря 2012 г. 10:20
19 декабря 2012 г. 9:10Отвечающий -
Kazun, странная вещь творится. Когда я вывожу в файл данные этим методом $var -replace "`n","`r`n" | Out-File result.txt, то потом при попытке добавить что то в этот файл методом Add-Content - я получаю какие то иероглифы... а мне требуется регулярно туда добавлять данные.
Out-File -Append дает тотже результат? - В отрицательном случае полный результат действий по пунктам.- Изменено KazunEditor 21 декабря 2012 г. 8:45
- Помечено в качестве ответа SteFFun 21 декабря 2012 г. 11:58
21 декабря 2012 г. 8:44Отвечающий
Все ответы
-
Галочка перенос по словам стоит в Notepad?19 декабря 2012 г. 8:14Отвечающий
-
нет, не стоит19 декабря 2012 г. 8:28
-
нет, не стоит
А если установить?19 декабря 2012 г. 8:39Отвечающий -
тупо перенес по размеру открытого окна, и все подряд опять...19 декабря 2012 г. 8:48
-
тупо перенес по размеру открытого окна, и все подряд опять...
Тогда пример приложите вместе с файлом.19 декабря 2012 г. 8:52Отвечающий -
19.12.2012 11:26:51 ======================================================================
19.12.2012 11:26:51 Заряд батареи 99%
19.12.2012 11:26:51 Запускаю процедуру выключения SAP инстанций...
19.12.2012 11:29:35 Ждем 2 минуты завершения работы инстанций...
19.12.2012 11:29:35 Проверяем, выключилась ли инстанция(на основе процессов типа disp+work.exe)
19.12.2012 11:29:36 Процесс disp+work остановлен
19.12.2012 11:29:36 Процесс igswd остановлен
19.12.2012 11:29:36 Процесс msg_server остановлен
19.12.2012 11:29:36 Процесс jstart остановлен
19.12.2012 11:29:36 ===================================ОШИБКИ===================================это пример, того как должно выглядеть,смысла тут нет если что))) А как файл приложить, не вижу кнопок? Могу на почту послать...
- Изменено SteFFun 19 декабря 2012 г. 8:58 1
19 декабря 2012 г. 8:57 -
19.12.2012 11:26:51 ======================================================================
19.12.2012 11:26:51 Заряд батареи 99%
19.12.2012 11:26:51 Запускаю процедуру выключения SAP инстанций...
19.12.2012 11:29:35 Ждем 2 минуты завершения работы инстанций...
19.12.2012 11:29:35 Проверяем, выключилась ли инстанция(на основе процессов типа disp+work.exe)
19.12.2012 11:29:36 Процесс disp+work остановлен
19.12.2012 11:29:36 Процесс igswd остановлен
19.12.2012 11:29:36 Процесс msg_server остановлен
19.12.2012 11:29:36 Процесс jstart остановлен
19.12.2012 11:29:36 ===================================ОШИБКИ===================================это пример, того как должно выглядеть,смысла тут нет если что))) А как файл приложить, не вижу кнопок? Могу на почту послать...
Да на любой обменник файлами. Текстовая переменная $var.ToString() ($var заменить на свое),корректно выводит?19 декабря 2012 г. 9:01Отвечающий -
http://files.mail.ru/0FHWI9
нет, тоже самое, я уже так пробовал...
19 декабря 2012 г. 9:05 -
Вместо `n используйте `r`n.
$var -replace "`n","`r`n" | Out-File result.txt
- Помечено в качестве ответа SteFFun 19 декабря 2012 г. 10:20
19 декабря 2012 г. 9:10Отвечающий -
сработало, в чем подвох, объясните пожалуйста.19 декабря 2012 г. 9:51
-
сработало, в чем подвох, объясните пожалуйста.
Видимо notepad понимает только CRLF(`r`n),но не работает с LF(`n).19 декабря 2012 г. 9:57Отвечающий -
Спасибо!
P.S. Я, если честно, не перестаю удивляться Вашей монструозности в POSH'е!)
- Изменено SteFFun 19 декабря 2012 г. 10:22 1
19 декабря 2012 г. 10:21 -
Kazun, странная вещь творится. Когда я вывожу в файл данные этим методом $var -replace "`n","`r`n" | Out-File result.txt, то потом при попытке добавить что то в этот файл методом Add-Content - я получаю какие то иероглифы... а мне требуется регулярно туда добавлять данные.
Out-File -Append дает тотже результат? - В отрицательном случае полный результат действий по пунктам.- Изменено KazunEditor 21 декабря 2012 г. 8:45
- Помечено в качестве ответа SteFFun 21 декабря 2012 г. 11:58
21 декабря 2012 г. 8:44Отвечающий -
Спасибо, я уже разобрался. Out-File -Append отрабатывает нормально. Разница в том что Add-Content не имеет атрибута кодировки и пихает все в ASCII. Out-File по умолчанию создает файл с юникод кодировкой, поэтому иероглифы и получались. Можно конечно извращаться по всякому, но я просто теперь данные добавляю в файл командлетом Out-File -Append.21 декабря 2012 г. 11:58
-
Спасибо, я уже разобрался. Out-File -Append отрабатывает нормально. Разница в том что Add-Content не имеет атрибута кодировки и пихает все в ASCII. Out-File по умолчанию создает файл с юникод кодировкой, поэтому иероглифы и получались. Можно конечно извращаться по всякому, но я просто теперь данные добавляю в файл командлетом Out-File -Append.
Параметр Encoding у командлета Add-Content присутствует,он не отображается через Get-Help,потому что он динамический.21 декабря 2012 г. 12:02Отвечающий -
Точно, вот это для меня новость! Спасибо, буду знать.21 декабря 2012 г. 12:53