批处理文件 - 将文件列表写入变量

时间:2010-07-13 14:56:21

标签: directory batch-file

我想得到一个变量的所有文件(包括它们的绝对路径)的列表,用空格分隔。我的谷歌在这方面似乎很弱,因为我一直在遇到问题。

我有一个存储在%baseDir%中的基目录,并且想要解析它的文件(不是递归或包含子目录)。就像我提到的,这需要进入列表。我想我可以使用一个很好的小捷径,但for循环和连接也可以解决这个问题。

理想情况下,我会有这样的事情:

echo fileList

C:\file1.c C:\file2.c C:\file3.c

1 个答案:

答案 0 :(得分:14)

非常简单:

setlocal enabledelayedexpansion enableextensions
set LIST=
for %%x in (%baseDir%\*) do set LIST=!LIST! %%x
set LIST=%LIST:~1%

事实上,你可以在set命令的帮助中找到这个例子,可以通过help set访问,并解释为什么天真的方法不起作用。

要使用不同的文件集(而不是 all ),您可以轻松更改通配符:

for %%x in (%baseDir%\*.c) do set LIST=!LIST! %%x