Я пытаюсь сделать командный файл, который добавляет числа. Номер по умолчанию будет равен 100. При запуске сценарий добавляет 1 к 100. Затем он добавит 1 к ранее созданному номеру (101). Это продолжалось бы до остановки. Кроме того, я не знаю, как это сделать. Я не мог найти других подобных ответов. Могу ли я помочь? :)Добавление чисел в пакетном файле
ответ
Вы можете использовать "установить/а" делать математику в пакетных файлах , например:
set /a sum = %sum% + 1
или даже
set /a sum += 1
(то же самое) Есть другие операторы, кроме + конечно, и некоторые из них нужно будет процитировать.
Я нашел список в http://www.robvanderwoude.com/battech_math.php с примерами:
Add:
SET /A Result = 12 + 4
Subtract:
SET /A Result = 23 - 7
Multiply:
SET /A Result = 8 * 2
Integer divide:
SET /A Result = 33/2
Modulo divide: (1, 2)
SET /A "Result = 66 %% 25"
Shift right: (2)
SET /A "Result = 128 >> 3"
Shift left:
SET /A "Result = 1 << 4"
Bitwise AND:
SET /A "Result = 48 & 23"
Bitwise OR:
SET /A "Result = 16 | 16"
Bitwise XOR:
SET /A "Result = 31^15"
Group:
SET /A "Result = (24 << 1) & 23"
Эта страница перечисляет некоторые более продвинутые вещи тоже, а также ограничения: Это целое только и 32-бит максимум.
Чтобы сделать это сделать это в цикле, так как вы хотите, чтобы вручную остановить его, я бы просто использовать простой бесконечный цикл Гото.
Перед набором команд, который добавляет один, поставить метку, которая начинается с двоеточия, как этот
:start
затем команды, которые вы хотите запустить внутри цикла (добавление 1, возможно, «эхо» ИНГ результат и т.д.) и в нижней части Гото команду, чтобы вернуться к метке:
goto start
чтобы остановить ее, нажмите Ctrl + Pause и ответить Y. (Это должно быть управление-брейк, но некоторые клавиатуры переместите Break на другой ключ из Pause, а новый не остановит пакетные файлы)
Он также может остановиться сам по себе после того, как счет достигнет 4294967295 (32-разрядный максимум), который может не занять много времени, если он только добавляет числа. (У меня нет компьютера под управлением Windows, рядом со мной в данный момент, чтобы проверить это)
OP также, кажется, не уверен в вещах, подобных рекурсивному вызову функции, или выполнению его в любом типе цикла. – roelofs
Это по крайней мере начало, но вы правы - я должен был включить более оригинальный вопрос. – davidgro
Я обновил его, чтобы добавить цикл, пока не остановится, и как его остановить. – davidgro
простой способ это в for /l
цикле:
set /p max=Count to:
for /l %%a in (100, 1, %max%) do (
Echo %%a
)
Это простая программа подсчитывать от 100, но демонстрирует легкость и эффективность использования петель в партии.
- 1. Сравнение двух чисел в пакетном файле
- 2. Приращение последней последовательности чисел, разделенных периодом, в пакетном файле
- 3. Объединение пространственно разделенных чисел вместе в пакетном файле
- 4. Скобка в пакетном файле
- 5. IF в пакетном файле
- 6. Urldecode в пакетном файле
- 7. подстроки в пакетном файле
- 8. vsubst в пакетном файле
- 9. Текста в пакетном файле
- 10. UNC в пакетном файле
- 11. Математика в пакетном файле
- 12. wkhtmltopdf в пакетном файле
- 13. Меню в пакетном файле
- 14. маскирующим в пакетном файле
- 15. Подписано 32-разрядное добавление в пакетном файле, указав недопустимый номер
- 16. Сплит-строка в пакетном файле
- 17. Имя папки в пакетном файле
- 18. Условные выражения в пакетном файле
- 19. Вложенные команды в пакетном файле
- 20. выполнить httprequest в пакетном файле
- 21. разделителем проблема в пакетном файле
- 22. Подстановка справки в пакетном файле
- 23. Зацикливание команды в пакетном файле
- 24. Символы Юникода в пакетном файле
- 25. XML в пакетном файле Windows,
- 26. SETLOCAL enabledelayedexpansion в пакетном файле
- 27. Concat Strings в пакетном файле
- 28. Alt коды в пакетном файле
- 29. Что означает «. \» В пакетном файле?
- 30. Для циклов в пакетном файле
"До остановки"? – MxyL
Если вы можете дать более подробную информацию о более широкой проблеме, мы можем попытаться предложить лучшее решение (делая то, что вы сказали, имеет несколько подходов, но не все они подходят для определенных сценариев). – roelofs