使用 Windows 命令行列出带路径的文件

Che*_* S. 12 windows command-line command-line-arguments

我在驱动器中的文件夹结构是这样的(在 Windows 中):

Folder 1
 Fd1
 Fd2
 Fd3
 Fd4
 Fd5
Folder 2
 Fd1
 Fd2
 Fd3
 Fd4
 Fd5
Run Code Online (Sandbox Code Playgroud)

这种安排持续了 100 多个文件夹。在每个文件夹 x 的Fd1内都有某些文件。我正在寻找一种使用 Windows 命令行将具有整个路径的文件列表提取到文本文件的方法。由于几乎没有使用命令提示符的经验,我对如何实现这一点一无所知。.bat.bat

我希望输出是这样的列表:

............
D:\Folder 1\Fd1\one.bat
D:\Folder 2\Fd2\two.bat
............
Run Code Online (Sandbox Code Playgroud)

有人能帮我吗?

Den*_*nis 34

如果我明白你在找什么试试

dir/s/b *.bat
Run Code Online (Sandbox Code Playgroud)

如果可行,则将其重定向到文本文件中....

dir/s/b *.bat > textfile.txt
Run Code Online (Sandbox Code Playgroud)

您可能还会发现拥有DIR 命令命令行开关列表很有用。


小智 5

我建议将 FOR 命令与 /R 开关一起使用。

例如,要查找当前目录中和下的所有文件,请使用:

for /r %i in (*) do @echo %i
Run Code Online (Sandbox Code Playgroud)

要从任意目录开始搜索,请使用以下形式的命令:

for /r "C:\TMP" %i in (*) do @echo %i
Run Code Online (Sandbox Code Playgroud)

最后,要查找 c:\bin 目录下的所有批处理文件,您可以执行以下操作:

for /r "c:\bin" %i in (*.bat) do @echo %i
Run Code Online (Sandbox Code Playgroud)

但是,我应该指出的一点是,如果您在批处理文件中使用此命令,则需要将 % 符号加倍,因此这些示例将变为:

for /r %%i in (*) do @echo %%i
for /r "C:\TMP" %%i in (*) do @echo %%i
for /r "c:\bin" %%i in (*.bat) do @echo %%i
Run Code Online (Sandbox Code Playgroud)

在这里使用 i 作为变量是完全任意的,并且是在我的 FORTRAN 时代首次植入我的。