如何使用 CMD 命令提取文件夹文件列表(Powershell 特技)
有时,您需要提取特定文件夹中的文件列表,但又不想手动提取,因为这样太费时间。 在本篇文章中,我们将向您展示如何使用 CMD 命令和 Powershell 轻松提取文件。
使用这种方法,只需几个简单的命令就能达到预期效果。首先,我将介绍如何把我想要的文件夹中所有文件的文件名提取到 CSV 文件中,然后再教你如何在提取后进行小修改(例如,只提取 10 位数字)。
本指南将帮助你更高效、更有效地管理文件,让我们开始吧!
如何打开 CMD 窗口
首先,打开命令提示符 (CMD) 窗口,按照以下步骤操作。
从 "开始 "菜单运行 CMD
- 使用热键
Windows 键 + R打开运行窗口。在运行窗口中,键入cmd并输入进入屏幕上。 - 使用 "开始 "菜单 点击屏幕左下角的 "开始 "按钮,在搜索栏中输入
cmd或命令提示符在搜索框中。在搜索结果中,单击 "命令提示符 "运行它。
以管理员身份运行 CMD
- 使用热键
Windows 键 + X然后选择命令提示符(管理员)从列表中删除。 - 使用 "开始 "菜单 在搜索栏中输入
cmd然后点击命令提示符并右键单击以管理员身份运行在左边 我建议采用这一方案。
如何将文件夹中的所有文件列表转换为 CSV 格式
本文将逐步向你展示如何使用 CMD 和 Powershell 将文件夹中的所有文件列表转换为 CSV 文件。
使用 CMD 命令将文件列表保存到文本文件中
首先,打开 CMD 窗口,键入(粘贴)下面的命令,将指定文件夹(C:\test)内的所有文件名转换为文本文件 (file_list.txt) 文件夹中。您可以使用自己选择的文件夹地址,而不是 C:\test。
dir /b "C:\test" > file_list.txt2. 将文本文件转换为 CSV 文件
接下来,我们将使用 Powershell 读取文本文件并将其转换为 CSV 文件。
powershell -Command "Get-Content file_list.txt | Out-File file_list.csv -Encoding ascii" -Command "Get-Content file_list.txt | Out-File file_list.csv" -Encoding ascii3. 删除临时文本文件
临时创建的文本文件 (file_list.txt) 完成操作。
del file_list.txt一次运行整个命令
我们分步骤进行了描述,以帮助你理解发生了什么,但你也可以一次性执行上述所有步骤。将下面的命令复制并粘贴到 CMD 窗口,然后运行 进入 键来运行它。
cd "C:\test"
dir /b > file_list.txt
powershell -Command "Get-Content file_list.txt | Out-File file_list.csv -Encoding ascii" -Del file_list.txt
del file_list.txt这样 file_list.csv 该文件将存储文件夹中所有文件的名称,如下图所示。
0292021001R00.pdf
file_list.csv 文件的内容
2192014006R01.pdf
2372019002R00.pdf
2442015001R01.pdf
但当我创建实际的 CSV 文件并检查其内容时,我发现它反映了文件名和扩展名。 如果你不想按原样使用它,而只想使用文件名,也许只用其中的几位数,你可以这样做。在本例中,我们只提取前 10 位数字。
如何只提取文件名的前 10 位数字并将其保存为 CSV 文件
首先,我们将使用 CMD 命令提取文件夹文件列表,并将其保存到文本文件中,就像之前做的那样。
dir /b "C:\test" > file_list.txt使用 Powershell 从每个文件名中只提取前 10 位数字,并将其保存到 CSV 文件中。您可以在下面的命令中用任何其他数字代替 10,以提取任何位数。
powershell -Command "Get-Content file_list.txt | ForEach-Object { $_.Substring(0,10) } | Out-File file_list.csv -Encoding ascii" -Encoding ascii它还会删除任何已创建的文本文件。
del file_list.txt我们编写了一条 CMD 命令,可以一次性运行上述所有步骤。将下面的命令复制并粘贴到 CMD 窗口,然后运行 进入 键来运行它。
cd "C:\test"
dir /b > file_list.txt
powershell -Command "Get-Content file_list.txt | ForEach-Object { $_.Substring(0,10) } | Out-File file_list.csv -Encoding ascii" -Del file_list.txt
del file_list.txt通过这一过程,您将学会如何 file_list.csv 文件中只存储每个文件名的前 10 位数字。
0292021001
file_list.csv 文件的内容
2192014006
2372019002
2442015001
组织起来
在本篇文章中,我们学习了如何使用一条 CMD 命令列出所选文件夹中的所有文件名。
命令的内容并不重要,重要的是你知道它,并能列出它的清单,对吗? 从这个意义上说,你又获得了一项技能。
下一次,我们将介绍另一种技能。
谢谢。
#注释
下面是 CMD 命令的详细说明,如果您有兴趣了解更多信息,请点击此处。
将文件夹中的所有文件列表转换为 CSV 格式
``cmd
cd "C:\test"
dir /b > file_list.txt
powershell -Command "Get-Content file_list.txt | Out-File file_list.csv -Encoding ascii" -Del file_list.txt
del file_list.txt
```
这些命令的执行顺序如下
1.`cd "C:\test"`:
- 导航到 "C:\test "目录。
- cd` 命令代表 "Change Directory(更改目录)",用于移动到指定路径。
`dir /b > file_list.txt`:
- 获取当前目录(C:\test)下的文件列表,并将其保存为名为 `file_list.txt`的文件。
- dir "命令列出目录中的文件和文件夹。
- 选项 `/b` 只打印文件名。
- `>` 会将输出保存到文件中。
3.运行以下命令:`powershell -Command "Get-Content file_list.txt | Out-File file_list.csv -Encoding ascii"`:
- 读取 `file_list.txt` 文件的内容并将其保存到 `file_list.csv` 文件中。
- powershell -Command` 运行 Powershell 命令。
- Get-Content file_list.txt` 获取 `file_list.txt` 文件的内容。
- 管道 "将前一条命令的输出传递给后一条命令。
- Out-File file_list.csv -Encoding ascii` 将内容保存到文件 `file_list.csv`,指定编码格式为 ASCII。
4. `del file_list.txt`:
- 删除临时创建的 `file_list.txt` 文件。
- del` 命令将删除指定的文件。
这些命令会一次性执行,将 `C:\test` 目录中的所有文件名保存到 `file_list.csv` 文件中,并删除临时文件。
只提取文件名的前 10 位数字并保存为 CSV 文件
``cmd
cd "C:\test"
dir /b > file_list.txt
powershell -Command "Get-Content file_list.txt | ForEach-Object { $_.Substring(0,10) } | Out-File file_list.csv -Encoding ascii" -Del file_list.txt
del file_list.txt
```
这些命令的执行顺序如下
1.`cd "C:\test"`:
- 导航到 "C:\test "目录。
2. `dir /b > file_list.txt`:
- 获取当前目录(C:\test)中的文件列表,并将其保存为名为 `file_list.txt` 的文件。
3.运行以下命令:`powershell -Command "Get-Content file_list.txt | ForEach-Object { $_.Substring(0,10) } | Out-File file_list.csv -Encoding ascii"`:
- 读取 `file_list.txt` 文件的内容,只提取每个文件名的前 10 位数字,并将其保存到 `file_list.csv` 文件中。
- powershell -Command` 运行 Powershell 命令。
- Get-Content file_list.txt` 获取 `file_list.txt` 文件的内容。
- `|`(管道)将前一条命令的输出传递给后一条命令。
- ForEach-Object { $_.Substring(0,10) }` 从每个文件名中提取前 10 位数字。
- ForEach-Object` 是对每个项目执行指定操作的 Powershell 命令。
- $_.Substring(0,10) }` 是一个脚本块,用于提取文件名的前 10 位数字。
- $_` 是一个 Powershell 自动变量,代表当前正在处理的项目。
- Substring(0,10)` 是一种提取字符串前 10 个字符的方法。
- Out-File file_list.csv -Encoding ascii` 将结果保存到 `file_list.csv` 文件,指定编码格式为 ASCII。
4. `del file_list.txt`:
- 删除临时创建的 `file_list.txt` 文件。
这些命令一起运行时,会提取 `C:\test` 目录中所有文件名的前 10 位数字,将其保存到 `file_list.csv` 文件中,并删除临时文件。





