通用型的:
如果要交换的两个变量的值是数字的话,还可以使用如下两种方案:
方案一:
方案二:
@echo off
set var1=abc
set var2=123
echo 交换前: var1=%var1% var2=%var2%
set var1=%var2%& set var2=%var1%
echo 交换后: var1=%var1% var2=%var2%
pause
如果要交换的两个变量的值是数字的话,还可以使用如下两种方案:
方案一:
@echo off
set /a num1=123,num2=456
echo 交换前: num1=%num1% num2=%num2%
set /a num1=%num2%,num2=%num1%
:: set num1=%num2%& set num2=%num1% 也是可以的
echo 交换后: num1=%num1% num2=%num2%
pause
方案二:
@echo off
:: 会有数值范围的限制,即 num_a 与 num_b 的和必须在2^-31~2^31-1这个范围内
set /a num_a=123,num_b=456
echo 交换前: num_a=%num_a% num_b=%num_b%
set /a num_a=%num_a%+%num_b%-%num_a%,num_b=%num_a%+%num_b%-%num_b%
echo 交换后: num_a=%num_a% num_b=%num_b%
pause
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
考虑问题复杂化,解决问题简洁化。
