Пакетная печать с набором / - PullRequest
0 голосов
/ 26 марта 2012

Поскольку в пакете на самом деле нет целых чисел, я должен обойти это с помощью set / a.Здесь у меня есть сегмент кода (из пакета), который оценивает числовое выражение и устанавливает его в строку:

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

Моя проблема заключается в том, что это на самом деле печатает строку «test».Это довольно неудобно, потому что мне может понадобиться изменить строку позже.Есть ли способ обойти это (кроме целой связки cls)?

Ответы [ 2 ]

1 голос
/ 26 марта 2012

Это даст вам несколько идей:

@echo off
set test=|set /a 16-10
ECHO.
SET /A y=12 - 10
ECHO.y = '%y%'
pause>nul
1 голос
/ 26 марта 2012

Я считаю, что

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
...