К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Вопрос по консоли win7

Гость
0 - 13.09.2017 - 11:07
Пишу в пакетнике винды:
Определены переменные, имя которых состоит из буквы "а" и порядкового номера

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$

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



Гость
1 - 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
=====================================
Гость
2 - 16.09.2017 - 22:59
Хорошая методичка тут https://en.wikibooks.org/wiki/Windows_Batch_Scripting
Гость
3 - 17.09.2017 - 00:49
Хм. Действительно. Спс
Гость
4 - 18.09.2017 - 08:51
Если удаляю папку командой rd, а такой папки нет, выдаётся сообщение: "Не удаётся найти указанный файл". Можно ли сделать чтобы сообщение не печаталось на экране? При перенаправлении результата в > nul сообщение всё равно выдаётся.
Гость
5 - 18.09.2017 - 15:03
4-Рюкзак > Нужно перенаправлять stderr:
rd bla-bla 2>NUL
Гость
6 - 18.09.2017 - 15:55
5-IvUs > это не работает. я ж написал
Гость
7 - 18.09.2017 - 15:56
5-IvUs >сорян, 2 не заметил


К списку вопросов






Copyright ©, Все права защищены