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-您的问题是关于“将多个变量添加到一个变量中”;参数是另一回事。我建议您更改主题标题。“我已经有了一个选择,如何做,但这将非常复杂。”-请详细说明。