我需要从给定文件夹中写入文件夹和子文件夹的文件列表。我使用以下命令:
dir /s /b /o:n /a:d > folderlist.txt
点分字符在输出文件中不存在。当我在cmd
中检查命令时,命令的输出也包含点字符。我不使用PowerShell。
答案 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。