Я знаю, это может показаться глупым, но я новичок в пакетном сценарии, поэтому почти ничего об этом не знаю. Во всяком случае, я хочу изменить переменную; добавьте к нему 1, вот мой код:
@echo off
set num = 1
set num = %num% + 1
echo %num%
@echo on
yessss, спасибо! Я не понимаю, зачем убирать пробелы.
позвольте мне опубликовать ответ.
Во-первых, никогда не используйте пробелы в стандартном set
до и после =
. Это создаст переменную с пробелом в конце и значение с пробелом в начале. Так что технически у вас будут %num %
и 1
.
Чтобы продемонстрировать это, просто скопируйте все ниже и вставьте в подсказку cmd
.
@echo off
set dummy = test
set dummy
echo %dummy%
echo %dummy %
@echo on
аналогично с:
@echo off
set num = 1
set num | findstr /v "NUMBER"
set /a num+=1
set num | findstr /v "NUMBER"
echo %num%
echo %num %
@echo on
приведет к двум переменным, %num %
со значением 1
и %num%
со значением 1
Результаты из вышеизложенного прояснят ваш вопрос в комментариях.
Чтобы решить свой арифметический вопрос, просто используйте переключатель /a
, чтобы указать, что значения являются числовыми, и мы можем использовать операторы арифметической последовательности и т. д.
@echo off
set "num=1"
set /a num+=1
echo %num%
легко,
set /a num+=1
и, пожалуйста, удалите пробелы до и после=
в стандартномset
заявлении. то естьset "num=1"
см.set /?
изcmd