使用set / a批量打印

时间:2012-03-25 20:35:08

标签: batch-file command-prompt

由于批处理实际上没有整数,我必须使用set / a解决它。这里我有一个代码段(来自批处理),它评估数值表达式并将其设置为字符串:

@echo off
set test=|set /a 12-10
pause

我的问题是这实际上打印了“test”字符串。这非常不方便,因为我可能需要稍后更改字符串。有没有办法(除了一大堆cls)?

2 个答案:

答案 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