我正在编写一个批处理文件,用于自动下载一款名为 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>