cmd文件输出中的虚线字符

时间:2019-01-15 09:16:44

标签: cmd utf-8 character-encoding

我需要从给定文件夹中写入文件夹和子文件夹的文件列表。我使用以下命令:

dir /s /b /o:n /a:d > folderlist.txt

点分字符在输出文件中不存在。当我在cmd中检查命令时,命令的输出也包含点字符。我不使用PowerShell。

2 个答案:

答案 0 :(得分:1)

首先,默认情况下您不需要的字符不可用,请运行:chcp 65001-这会将编码更改为UTF-8。

然后您可以运行命令:dir /s /b /o:n /a:d > folderlist.txt

如果需要在cmd中查看输出。请将默认字体更改为Lucida Console


在OP澄清他的要求之前,我设法提出了这个建议:

假设文件系统大小合理,则可以使用tree命令,该命令会为您生成一个缩进的树结构。您可以通过/A标志告诉它也使用ASCII字符。试试看!

cmd:tree /A ["directory path"] > "DRIVE_LETTER:\PATH_TO_EXPORT\tree.txt"

/A-ASCII字符,而不是扩展字符。

/F-显示每个文件夹中文件的名称。

请注意,"directory path"是可选的,但似乎您想在这种情况下使用它(插入起始文件夹的路径)。

如果您不能使用tree(出于简单的输出原因)-您可以使用:

DIR YOUR_DRIVE_LETTER:\ /B /S > "DRIVE_LETTER:\PATH_TO_EXPORT\tree.txt"

/B-flag =完整路径,而不是相对路径。

powershell:Get-ChildItem | tree > "DRIVE_LETTER:\PATH_TO_EXPORT\tree.txt"

答案 1 :(得分:0)

如果tree解决方案不适合您,则可以运行具有Unicode支持的cmd /u cmd。或使用chcp 65001将代码页更改为批处理文件中的UTF。