如何遍历文件夹并将文件名称添加到单个字符串变量

如何遍历文件夹并将文件名称添加到单个字符串变量

我正在编写一个批处理文件,用于自动下载一款名为 dwarf fortress 的游戏以及一堆其他文件和图像。我已一切正常,但现在我想让用户能够从下载的 .txt 文件夹中选择颜色集。问题是,我想根据文件名提供可用的颜色集名称,因此我需要遍历该文件夹并获取文件的名称(不带 .txt 扩展名),然后将它们添加到格式为 的单个字符串中filename, filename, ... etc。我可以遍历这些文件,但我不知道如何制作那个单个字符串。这是我目前所拥有的(我知道它不起作用):


set /a colorFileNames=""
for %%f in (%CD%\colors\colors\*) do (
    set %temp%=%%f
    set colorFileNames="%%colorFileNames%%, %temp%:~0,-3"
)

colorFileNames然后我将在用户的问题中使用它。

答案1

我想根据文件名提供可用的颜色集名称

我需要遍历该文件夹并获取文件的名称(不带 .txt 扩展名),然后将它们添加到具有 filename、filename、... 等格式的单个字符串中

使用以下批处理文件(test.cmd):

@echo off
setlocal enabledelayedexpansion
set colorFileNames=
for %%f in (%CD%\colors\colors\*) do (
  set _file=%%~nf
  if [!colorFileNames!]==[] (
    set colorFileNames=!_file!
    ) else (
    set colorFileNames=!colorFileNames!, !_file!
    )
)
echo !colorFileNames!
endlocal

例子:

F:\test>dir /b colors\colors
red.txt
green.txt
blue.txt
sky blue pink.txt

F:\test>test
red, green, blue, sky blue pink
F:\test>

进一步阅读

相关内容