Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 我想在批处理文件中使用for循环从用户那里获得许多输入_Windows_Batch File_Variables_For Loop - Fatal编程技术网

Windows 我想在批处理文件中使用for循环从用户那里获得许多输入

Windows 我想在批处理文件中使用for循环从用户那里获得许多输入,windows,batch-file,variables,for-loop,Windows,Batch File,Variables,For Loop,::这是我的问题,我不知道如何在变量输入%%a中获取一个值,您只需要delayedexpansion。从cmd控制台运行setlocal/?以获取有关它的帮助。例如,如果要将标准变量名设置为!输出,但将其内容更改为包含循环计数器的编号: FOR /L %%A IN (1,1,10) DO ( SET /P INPUT%%A= ENTER THE FIRST INPUT : ECHO %INPUT%%A% ) 您也不希望每次调用输入时都回显1st,因为2nd不是1st,所以请参见您要查找的if语

::这是我的问题,我不知道如何在变量输入%%a

中获取一个值,您只需要
delayedexpansion
。从cmd控制台运行
setlocal/?
以获取有关它的帮助。例如,如果要将标准变量名设置为
!输出,但将其内容更改为包含循环计数器的编号:

FOR /L %%A IN (1,1,10) DO (
SET /P INPUT%%A= ENTER THE FIRST INPUT :
ECHO %INPUT%%A% )

您也不希望每次调用输入时都回显1st,因为2nd不是1st,所以请参见您要查找的if语句示例。

。具体来说,请看Aacini的答案。要想
Echo
将其放在循环中(在本例中,这似乎是完全不必要的),您需要一个伪
调用
调用Echo%%INPUT%%a%%
,或者在使用
Echo之前启用延迟扩展:
设置本地启用延迟扩展
!输入%%A。您还应该更改措辞,使用
FIRST
只适合一次!
@echo off
setlocal enabledelayedexpansion
for /L %%i in (1,1,10) do (
  if %%i equ 1 set handle=st
  if %%i equ 2 set handle=nd
  if %%i equ 3 set handle=rd
  if %%i geq 4 (if %%i lss 11 set handle=th)
  set /p "input=What is your %%I!handle! input? :"
  set input=!input!%%i
  echo !input!
)