Como posso armazenar a saída do comando “tree” do Windows em um arquivo e recuperá-lo novamente?

3

Quando eu faço um tree > somefile.txt , o arquivo realmente contém a saída do comando tree, mas as linhas desenhadas no console são exibidas como letras acentuadas ÃÄÄÄ .

Qual codificação ou modo eu tenho que usar para exibir esse arquivo de saída corretamente e qual editor pode fazer isso?

    
por Andrew J. Brehm 31.01.2012 / 10:47

3 respostas

4

tree suporta o parâmetro /a que utiliza o ASCII normal:

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
    
por 31.01.2012 / 11:02
3

Ele provavelmente usa os caracteres de desenho de linha na página de código 850.

O bloco de notas não suporta essa codificação, o padrão é "ANSI", pelo qual a Microsoft entende o Windows-Latin1 ou o Code-Page-1252, se bem me lembro.

O Notepad ++ ou o gVim etc. devem ser capazes de exibir os caracteres corretamente.

    
por 31.01.2012 / 10:59
0

No Notepad ++, consegui lê-los ao selecionar a opção "Codificação" em "Conjuntos de caracteres" > "Europa Ocidental" > "OEM-EUA".

Depois disso, eu poderia selecionar "Codificação" > "Converta para UTF-8", para poder transferi-los em um formato que esperamos que todos os outros possam ler.

Para referência, meu sistema é o Windows 7 Professional SP1 de 64 bits (x64), com o idioma do meu sistema atual configurado como "Inglês (Estados Unidos)".

Além disso, acredito que essa pergunta tenha mais informações e seja mais bem avaliada: Salvando resultados 'tree / f / a "em um arquivo de texto com suporte unicode

Eu também executo o Prompt de Comando com a opção "/ U" (através do ConEmu, se isso é importante), e uma resposta nessa página afirmou: Ou isso não funciona como esperado, ou o comando tree não o respeita por alguma razão. Eu encontrei agora este trecho da fonte a seguir, que pode explicar por que o comando tree não grava texto codificado em Unicode em um arquivo:

Output UNICODE characters (UCS-2 le)
These options will affect piping or redirecting to a file.
Most common text files are ANSI, use these switches
when you need to convert the character set.

No meu ambiente, no entanto, usei o caractere do redirecionador de saída > para gravar em um arquivo, portanto, o comando não está fazendo isso em si e a saída ainda não estava codificada em um formato Unicode.

    
por 16.04.2015 / 16:11

Tags