如何使用 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.txt

2. 将文本文件转换为 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 ascii

3. 删除临时文本文件

临时创建的文本文件 (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
2192014006R01.pdf
2372019002R00.pdf
2442015001R01.pdf

file_list.csv 文件的内容

但当我创建实际的 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
2192014006
2372019002
2442015001

file_list.csv 文件的内容

组织起来

在本篇文章中,我们学习了如何使用一条 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` 文件中,并删除临时文件。

类似文章