none
Странности вывода текста в файл RRS feed

  • Вопрос

  • Добрый день.

    Есть текстовая переменная отформатированная как мне нужно с переносами строк. При выводе в консоль все верно показывает, при выводе скажем командой 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