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

the*_*e_e 8 directory batch-file

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

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

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

echo fileList

C:\file1.c C:\file2.c C:\file3.c
Run Code Online (Sandbox Code Playgroud)

Joe*_*oey 15

很简单:

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

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

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

for %%x in (%baseDir%\*.c) do set LIST=!LIST! %%x
Run Code Online (Sandbox Code Playgroud)