由于批处理实际上没有整数,我必须使用set / a解决它。这里我有一个代码段(来自批处理),它评估数值表达式并将其设置为字符串:
@echo off
set test=|set /a 12-10
pause
我的问题是这实际上打印了“test”字符串。这非常不方便,因为我可能需要稍后更改字符串。有没有办法(除了一大堆cls)?
答案 0 :(得分:1)
我相信
set /a test=12-10 > NUL
是您所追求的 - 您的版本根本没有设置test
。
C:\temp>type t.cmd
@echo off
set /a test=1+5-21 > NUL
echo Test is: %test%
C:\temp>t.cmd
Test is: -15
您甚至可以进行类似的间接分配:
C:\temp>type t.cmd
@echo off
setlocal
echo before: %mything%
set var=mything
set /a %var%=4+3
echo after: %mything%
C:\temp>t.cmd
before:
after: 7
答案 1 :(得分:1)
这会给你一些想法:
@echo off
set test=|set /a 16-10
ECHO.
SET /A y=12 - 10
ECHO.y = '%y%'
pause>nul