Форум на Kuban.ru (http://forums.kuban.ru/)
-   Разработка программ (http://forums.kuban.ru/f1024/)
-   -   Вопрос по консоли win7 (http://forums.kuban.ru/f1024/vopros_po_konsoli_win7-8465357.html)

Рюкзак 13.09.2017 11:07

Вопрос по консоли 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$

Собсна подскажите, можно ли это реализовать?

IvUs 16.09.2017 22:59

Волшебное слово называется 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
=====================================

IvUs 16.09.2017 22:59

Хорошая методичка тут [url]https://en.wikibooks.org/wiki/Windows_Batch_Scripting[/url]

Рюкзак 17.09.2017 00:49

Хм. Действительно. Спс

Рюкзак 18.09.2017 08:51

Если удаляю папку командой rd, а такой папки нет, выдаётся сообщение: "Не удаётся найти указанный файл". Можно ли сделать чтобы сообщение не печаталось на экране? При перенаправлении результата в > nul сообщение всё равно выдаётся.

IvUs 18.09.2017 15:03

4-Рюкзак > Нужно перенаправлять stderr:
rd bla-bla 2>NUL

Рюкзак 18.09.2017 15:55

5-IvUs > это не работает. я ж написал

Рюкзак 18.09.2017 15:56

5-IvUs >сорян, 2 не заметил


Текущее время: 07:18. Часовой пояс GMT +3.