(set /a "m1=1,m2=2")
for /f %%c in ("%m1%%m2%") do echo %%c
pause
除了由于for命令而导致的括号之外,还应该添加空格键。 for命令的回显是12.我使用数字字符来面对带有十进制表达式的set / A命令。 当我只使用一个Shell的集合尝试相同的过程时,也可以命名为m1,它可以没有逗号分隔。 使用set命令,m1表达式将为1 m2 2,而不是两个值,例如set / A SET。 有没有办法只使用set一次,而不仅仅是set / A?
答案 0 :(得分:2)
我理解你想要的问题:
set x=1,y=2
因此有两个变量(如set /a
)。答案是不。
虽然您可以使用plain来表达槽表达式:
@echo off
for %%a in (
"x=1" "a=5"
"y=2" "b=6"
"z=3" "c=7"
) do set "%%~a"
echo %x% %y% %z% %a% %b% %c%
请注意,项目周围的引号是必需的,因为=
是分隔符。您可以将所有内容放在一线,并用作分隔符,
,;
,<space>
可能有很多变量,这可以让你免于一些写作......?
这可以像这样重写:
@echo off
set "vars=x=1,y=2,z=3,a=5,b=6,c=7"
for %%a in ("%vars:,=","%") do set "%%~a"
echo %x% %y% %z% %a% %b% %c%
因此您只需要更改vars
值。
答案 1 :(得分:2)
正如其他答案和评论已经表明的那样,无法直接在一个命令中执行此操作,而是通过一个过程。下面的方法是最简单的方法:
@echo off
rem Define the several values
set "vars=m1=1,m2=2"
rem Do it:
set "%vars:,=" & set "%"
echo m1=%m1%
echo m2=%m2%
您可以删除@echo off
命令并执行此程序以查看确切执行的内容......