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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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
Batch file 批处理-如何将多个变量添加到一个变量中?_Batch File_Batch Processing - Fatal编程技术网

Batch file 批处理-如何将多个变量添加到一个变量中?

Batch file 批处理-如何将多个变量添加到一个变量中?,batch-file,batch-processing,Batch File,Batch Processing,我有一个问题,我想将一个参数的内容添加到另一个参数中。 所以我会解释给你听。这是我的一些代码: set /a A=%A1%+%A2%+%A3%+%A4%+%A5%+%A6%+%A7%+%A8%+%A9% set /a B=%B1%+%B2%+%B3%+%B4%+%B5%+%B6%+%B7%+%B8%+%B9% set /a C=%C1%+%C2%+%C3%+%C4%+%C5%+%C6%+%C7%+%C8%+%C9% set /a D=%D1%+%D2%+%D3%+%D4%+%D5%+%D6%+%

我有一个问题,我想将一个参数的内容添加到另一个参数中。 所以我会解释给你听。这是我的一些代码:

set /a A=%A1%+%A2%+%A3%+%A4%+%A5%+%A6%+%A7%+%A8%+%A9%
set /a B=%B1%+%B2%+%B3%+%B4%+%B5%+%B6%+%B7%+%B8%+%B9%
set /a C=%C1%+%C2%+%C3%+%C4%+%C5%+%C6%+%C7%+%C8%+%C9%
set /a D=%D1%+%D2%+%D3%+%D4%+%D5%+%D6%+%D7%+%D8%+%D9%
set TestTheAnswer= The following lines are wrong: 
if %A% NEQ 45 (then it should add "A, " to %TestTheAnswer% and of course the same with the other ones.)
echo %TestTheAnswer%
最后应该是这样的: “以下几行是错误的:A、B、D,”。我已经有一个选择如何在我的脑海中做这件事,但这将是非常复杂的。。。 有人能帮我吗?:)
关于只需在变量中添加
A、

...
set "wrongs= "
if %A% NEQ 45 set "wrongs=%wrongs%A, "
if %B% NEQ 45 set "wrongs=%wrongs%B, "
if %C% NEQ 45 set "wrongs=%wrongs%C, "
if %D% NEQ 45 set "wrongs=%wrongs%D, "
echo The following lines are wrong:%wrongs%
@ECHO关闭
SETLOCAL
对于(1,1,9)中的/L%%a,请设置/a%%a=%%a*2
集合/a总计=0
对于(1,1,9)中的/L%%a,设置/a总计+=a%%a
设定
回音百分比总计%
后藤:EOF
我一点也不知道45和鱼的价格有什么关系。你所做的似乎是总计A1..A9,B1..B9。。D1..D9然后对B..D的总数不做任何处理

不过,这里有一个简单的方法来计算总数。我已将
A1
A9
设置为一组数字,然后将它们相加,并显示总数以及安装在*中的值


好的。这里有几点,;第一个是
set/A
命令可能只处理变量名,因此不需要所有变量展开。这应该起作用:

set /a A=A1+A2+A3+A4+A5+A6+A7+A8+A9
set /a B=B1+B2+B3+B4+B5+B6+B7+B8+B9
set /a C=C1+C2+C3+C4+C5+C6+C7+C8+C9
set /a D=D1+D2+D3+D4+D5+D6+D7+D8+D9
set "TestTheAnswer= The following lines are wrong:"
if %A% NEQ 45 set "TestTheAnswer=%TestTheAnswer% A,"
if %B% NEQ 45 set "TestTheAnswer=%TestTheAnswer% B,"
if %C% NEQ 45 set "TestTheAnswer=%TestTheAnswer% C,"
if %D% NEQ 45 set "TestTheAnswer=%TestTheAnswer% D,"
echo %TestTheAnswer:~0,-1%
但是,具有相同名称和不断变化的下标的变量集合称为“数组”,数组的优点是不需要显式地写入数组的每个元素,只需写入一个元素,然后通过
for
命令更改下标。此外,您还可以充分利用
set/A
命令允许执行多个操作,每个操作用逗号分隔:

setlocal EnableDelayedExpansion

for /L %%i in (1,1,9) do set /A A+=A%%i, B+=B%%i, C+=C%%i, D+=D%%i
set "TestTheAnswer= The following lines are wrong:"
for %%v in (A B C D) do if !%%v! NEQ 45 set "TestTheAnswer=!TestTheAnswer! %%v,"
echo %TestTheAnswer:~0,-1%
有关批处理文件中阵列管理的更多详细信息,请参阅:

PS-您的问题是关于“将多个变量添加到一个变量中”;参数是另一回事。我建议您更改主题标题。

“我已经有了一个选择,如何做,但这将非常复杂。”-请详细说明。