如何将 Windows“树”命令输出存储在文件中并再次检索它?

如何将 Windows“树”命令输出存储在文件中并再次检索它?

当我执行时,tree > somefile.txt文件确实包含树命令的输出,但控制台中绘制的线显示为重音字母ÃÄÄÄ

我必须使用哪种编码或模式才能正确显示这样的输出文件以及哪个编辑器可以做到这一点?

答案1

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

答案2

它可能使用了代码页 850 中的画线字符。

记事本不支持该编码,它的默认编码是“ANSI”,如果我没记错的话,微软的意思是 Windows-Latin1 或 Code-Page-1252。

Notepad++或gVim等应该能够正确显示字符。

答案3

总结

我试图弄清楚我很久以前用这么多话表达了什么。

听起来,这是没有希望的,也许尝试/U切换,即使 shell 重定向也无法拯救你,也许只是使用另一个程序进行转换。

原来的

在 Notepad++ 中,选择“字符集”>“西欧”>“OEM-US”下的“编码”后我就能读取它们。

之后,我可以选择“编码”>“转换为 UTF-8”,这样我就可以以一种希望其他人都能读懂的格式来传输它们。

作为参考,我的系统是 Windows 7 Professional SP1 64 位(x64),当前系统区域设置设为“英语(美国)”。

此外,我相信这个问题有更多信息并且评分更高: 将 'tree /f /a" 结果保存到具有 Unicode 支持的文本文件

我还使用“/U”选项运行我的命令提示符(如果重要的话,通过 ConEmu),并且该页面上的答案指出:要么它不能按预期运行,要么树命令由于某种原因不尊重它。

我现在从以下来源找到了这段摘录,这也许可以解释为什么该tree命令不会将 Unicode 编码的文本写入文件:

输出 UNICODE 字符 (UCS-2 文件)
这些选项将影响管道或重定向到文件。
最常见的文本文件是 ANSI,
当您需要转换字符集时使用这些开关。

但是在我的环境中,我使用输出重定向字符>来写入文件,因此命令本身不会执行此操作,并且输出仍然未采用 Unicode 格式进行编码。

答案4

尝试代码页 437

在 Sublime Text 3 中,我能够通过“使用编码重新打开”>“DOS(CP 437)”查看输出,包括图形 ASCII 字符。

选择该代码页后,文件将使用图形 ASCII 字符呈现,如下所示:图形字符的示例图像

相关内容