如何使用 dir 简单地列出文件夹的所有文件到 UTF-8 编码的文本?

Posted

技术标签:

【中文标题】如何使用 dir 简单地列出文件夹的所有文件到 UTF-8 编码的文本?【英文标题】:How to simply list all files of a folder using dir to text with UTF-8 encoding? 【发布时间】:2021-04-14 20:46:57 【问题描述】:

简单的问题:

在 Windows 10 上,我找到了一个快速而肮脏的解决方案,只需简单地将所有文件的名称保存在文件夹中:

创建文本文件 在其中输入并保存dir > 1.txt 将 .txt 文件重命名为 .bat 运行它。完成。

但是,这个创建的文本文件是 ANSI 编码的,因此不会显示某些字符... 是否有一个简单的脚本可以在运行之前添加到 bat 文件中,以使生成的文本编码为 UTF-8?

【问题讨论】:

添加此命令chcp 65001 将代码页更改为UTF-8 您认为需要使用 UTF-8 做什么?如果您认为打印某些字符需要它,您能告诉我们这些字符是什么吗? Windows 字符集使用 8 位来表示每个字符;因此,使用 8 位可以表示的最大字符数为 256,这对于西方语言来说通常已经足够了,包括法语、德语、西班牙语和其他语言中使用的变音符号。但是,如果您的字符来自东方语言,您可能需要使用 Unicode 来使用这些字符,但这不一定是 UTF-8。 顺便说一句,您提供的命令不会保存所有文件的名称,它包含更多信息。如果您只想要名称,请打开命令提示符窗口,键入dir /?,按[ENTER] 键,然后查看其选项。至少,对于文件名,您应该使用/B 选项,以及/A 选项和-D(将排除目录)。也无需执行所有项目符号,只需打开命令提示符窗口,然后输入,例如 Dir /B /A:-D "C:\Users\ShoulderMonster\Desktop" 1> "C:\Users\ShoulderMonster\Documents\1.txt" 哦,我不知道UTF-8!也许这就是为什么我的一个日语文本文件是 UTF-16 LE 的原因?谢谢你的花絮! :) 我尽量避免使用命令提示符解决方案,因为我承认我不太了解它。最重要的是,蝙蝠的方式很容易记住!我试过你的代码,但它输出日语为???尽管是 UTF-8 和足够少的字符.. 不知道为什么。我真的很喜欢它只是一个列表,但我担心有一天我会错误地输入命令。也许如果我做得足够多,我会得到它,虽然!有没有办法做同样的事情并输出 UTF-16? 好吧,别管需要 UTF-16。即使得到它的 CHCP 代码它也不起作用(并且解释有点复杂),但无论如何我根本不需要它。我需要创建的列表最多只有 100 个文件,而且并非所有文件都有日文字符,因此 Hackoo 的解决方案适用于所有情况。 :) 就上下文而言,我曾经将我的 3DS 用作 MP3 播放器,但由于某种原因,大多数歌曲都损坏了。所以,我一直想记下所有这些并回忆我能​​做的!谢谢两位的及时帮助! 【参考方案1】:

您应该在 dir 命令之前添加此命令 chcp 65001 以将代码页更改为 UTF-8

@echo off
CHCP 65001>nul
dir>1.txt

进一步阅读CHCP 命令

【讨论】:

哦,非常感谢,成功了!请问,UTF-16 LE 的 CHCP 代码是什么? :) 没关系,一切都很好,您的指南就足以满足我的目的!感谢您的帮助!【参考方案2】:

这对我有用:

PowerShell -Command "TREE /F | Out-File output.txt -Encoding utf8"

【讨论】:

以上是关于如何使用 dir 简单地列出文件夹的所有文件到 UTF-8 编码的文本?的主要内容,如果未能解决你的问题,请参考以下文章

易语言 如何 列出 指定目录下 所有 文件名

php列出目录下所有文件(包括子目录)

如何将多个文件(在另一个文件中列出)tar 到不同目录中自己单独的 tar?

如何使用'ls'列出根目录和子目录中的所有文本文件

怎样使用C语言列出某个目录下的文件?

cad归档的命令是啥