Вывод абсолютно правильный, потому что это:
│ ├───DbTransactions
│ │ ├───2018-08-07
│ │ ├───2018-08-08
│ │ ├───2018-08-09
│ │ ├───2018-08-10
│ │ ├───2018-08-11
│ │ ├───2018-08-16
│ │ ├───2018-08-17
│ │ ├───2018-08-18
│ │ ├───2018-08-21
│ │ ├───2018-08-22
│ │ ├───2018-08-23
│ │ ├───2018-08-24
│ │ ├───2018-08-25
│ │ ├───2018-08-28
│ │ ├───2018-08-29
Чего вы не знаете, так это как кодируются символы , что должен знать каждый программист.
В консольной среде кодировка символов обычно представляет собой кодировку символов OEM , что означает, что для каждого символа используется один байт. Таким образом, количество символов ограничено 2^8 = 256
символами.
Откройте окно командной строки и выполните команду chcp
. Эта команда выводит кодовую страницу , устанавливаемую по умолчанию для консольных приложений, в зависимости от страны, настроенной для используемой учетной записи пользователя в настройках Windows Region and Language . Например, кодовая страница OEM 850 используется по умолчанию в странах Западной Европы и аналогичная кодовая страница OEM 437 в странах Северной Америки.
Но кодовая страница, используемая в приложениях с графическим интерфейсом, таких как Блокнот Windows, для текстовых файлов с кодировкой символов, использующей только один байт на символ, в зависимости также от настройки страны, например, Windows-1252 в Северной Америке и Западной Европе страны.
Посмотрите на наборы символов ссылочных кодовых страниц:
- Байт с десятичным значением 179 - это символ
³
в Windows-1252 и символ │
в OEM 437/850.
- Байт с десятичным значением 195 - это символ
Ã
в Windows-1252 и символ ├
в OEM 437/850.
- Байт с десятичным значением 196 - это символ
Ä
в Windows-1252 и символ ─
в OEM 437/850.
Так что вывод не странный. Вы просто просматриваете текстовый файл, используя другую кодовую страницу, которая использовалась для создания текстового файла.
Команда chcp
может быть использована в окне консоли с аргументом ch ange c ode p age. Но использование chcp 1252
в верхней части командного файла перед запуском tree t:\directory > RESULTS\%thecomputer%.log
не поможет, поскольку в наборе символов Windows-1252 нет символов для рисования прямоугольников. По этой причине команда tree
имеет параметр /A
в качестве вывода в справке при запуске tree /?
для использования символов ASCII вместо символов из расширенного набора символов активной кодовой страницы.