Windows 命令行 - 提示建议

Windows 命令行 - 提示建议

希望是一些简单的事情.....

在批处理文件中,我希望 CMD 提示用户输入他们要输入的项目名称的数量:

例子:

输入项目数量:

接下来如果用户输入 2,系统将提示他们输入研究项目编号:

例子:

  • 输入第一个项目编号:PROJ001
  • 输入第二个项目编号:PROJ002

最后,无论他们输入了多少项目的所有项目编号,都应该有一个新的变量以以下形式包含它们:

例子:

'PROJ001','PROJ002'

因此,如果他们只输入 1,那么我需要的最终变量将是“PROJ001”,但如果他们输入 2 或 3 或 4 等,那么它将是“PROJ001”、“PROJ002 等”。

如何输入我将留给你,对我来说最简单的方法是:

例子:

输入项目编号,以空格分隔:

代码会将这些全部串在一起。

我确实看到一些回复想要关闭这个帖子……是的,我称 Windows 命令行为 DOS

我自己也尝试过这个但我的知识有限。

例如

我有

set /p proj1=Enter Project:
set /p proj2=Enter Project:
set /p proj3=Enter Project:

set newvar='%proj1%','%proj2%','%proj3%'

但是,如果用户想要添加超过 3 个,这将需要不断更新,并且收集数据会更好。

希望这可以进一步澄清这个问题。

答案1

通过延迟扩展输入可以存储为列表和数组,从而允许使用索引号简单访问列表中的各个元素。当没有提供输入时,以下内容将停止接受输入。

@Echo Off & Setlocal EnableDelayedExpansion
:input
Set /A i+=1 & Set /P "Project[!i!]=Enter project ID: "& For %%i in (!i!) Do IF "!Project[%%i]!" == "" (Goto :Next) Else Goto :input
:Next
For /L %%i in (1,1,%i%) Do If not "!project[%%i]!" == "" Set "ProjectList=!ProjectList!,!project[%%i]!"
Set Project
Exit /B

相关内容