Как я могу сохранить выходные данные команды Windows "tree" в файле и получить их снова?

9268
Andrew J. Brehm

Когда я это делаю, tree > somefile.txtфайл действительно содержит выходные данные команды дерева, но линии, нарисованные в консоли, отображаются в виде букв с акцентом ÃÄÄÄ.

Какую кодировку или режим я должен использовать, чтобы правильно отобразить такой выходной файл, и какой редактор может это сделать?

3

3 ответа на вопрос

4
Macke

treeподдерживает /aкоммутатор, который использует обычный ASCII:

D:\>tree /a Folder PATH listing for volume Win7 Volume serial number is BA60-7CCB D:. +---3rd | +---Android | | +---android-ndk-r5 | | | +---build | | | | +---awk | | | | +---core | | | | +---gmsl | | | | \---tools 
3
RedGrittyBrick

Вероятно, он использует символы рисования линий в кодовой странице 850.

Блокнот не поддерживает эту кодировку, по умолчанию это «ANSI», под которой Microsoft подразумевает Windows-Latin1 или Code-Page-1252, если я правильно помню.

Notepad ++ или gVim и т. Д. Должны правильно отображать символы.

По умолчанию gVim равен latin1, но команда `: set enc = cp850` исправит это. Kevin Panko 9 лет назад 0
0
Pysis

В Notepad ++ я смог прочитать их, выбрав «Кодировка» в разделе «Наборы символов»> «Западноевропейский»> «OEM-US».

После этого я мог выбрать «Кодировка»> «Конвертировать в UTF-8», чтобы я мог передавать их в формате, который, надеюсь, все остальные смогут прочитать.

Для справки: моя система - Windows 7 Professional с пакетом обновления 1 (SP1), 64-разрядная (x64), с текущим системным языком, установленным на «Английский (США)».

Кроме того, я считаю, что этот вопрос содержит больше информации и, если рейтинг выше: сохранение «tree / f / a» приводит к текстовому файлу с поддержкой юникода

Я также запускаю командную строку с параметром "/ U" (через ConEmu, если это имеет значение), и ответ на этой странице гласил: либо это не работает должным образом, либо команда дерева по какой-то причине не соблюдает ее. Теперь я нашел этот отрывок из следующего источника, который может объяснить, почему treeкоманда не записывает кодированный в Unicode текст в файл:

Вывод символов UNICODE (файл UCS-2).
Эти параметры влияют на конвейерную передачу или перенаправление в файл.
Наиболее распространенными текстовыми файлами являются ANSI, используйте эти переключатели,
когда вам нужно преобразовать набор символов.

В моей среде, однако, я использовал символ перенаправителя вывода >для записи в файл, поэтому команда сама этого не делает, и выходные данные все еще не были закодированы в формате Unicode.