![]() |
Вопрос по консоли win7 Пишу в пакетнике винды: Определены переменные, имя которых состоит из буквы "а" и порядкового номера set a1=124 set a2=21 set a3=234 задан цикл от 1 до 3 который при каждой итерации вызывает подпрограмму m1 передавая ей значение порядкового номера повторения цикла for /L %%i in (1,1,3) do call :m1 %%i goto m2 что должна сделать подпрограмма: сформировать сетевой путь в котором последняя цифра соответствует переменной, заданной в начале, порядковый номер которой оканчивается на номер повторения цикла :m1 set ipw=a%1 set way=\\192.168.170.%ipw%\c$ echo %way% exit /b :m2 pause т.е. результатом хочу получить это: \\192.168.170.124\c$ \\192.168.170.21\c$ \\192.168.170.234\c$ а получаю это: \\192.168.170.a1\c$ \\192.168.170.a2\c$ \\192.168.170.a3\c$ Собсна подскажите, можно ли это реализовать? |
Волшебное слово называется EnableDelayedExpansion ===================================== setlocal EnableDelayedExpansion set a1=124 set a2=21 set a3=234 for /L %%i in (1,1,3) do call :m1 %%i goto m2 :m1 set way=\\192.168.170.!a%1!\c$ echo %way% exit /b :m2 pause ===================================== |
Хорошая методичка тут [url]https://en.wikibooks.org/wiki/Windows_Batch_Scripting[/url] |
Хм. Действительно. Спс |
Если удаляю папку командой rd, а такой папки нет, выдаётся сообщение: "Не удаётся найти указанный файл". Можно ли сделать чтобы сообщение не печаталось на экране? При перенаправлении результата в > nul сообщение всё равно выдаётся. |
4-Рюкзак > Нужно перенаправлять stderr: rd bla-bla 2>NUL |
5-IvUs > это не работает. я ж написал |
5-IvUs >сорян, 2 не заметил |
Текущее время: 07:18. Часовой пояс GMT +3. |