![]() |
Передача двойных параметров в цикле
Добрый вечер.
Есть несколько компьютеров с которых необходимо бэкапить данные. Допустим для простоты их N :) comp_1 с IP 192.168.1.1 и некоторым модификатором R13 comp_2 с IP 192.168.1.2 и некоторым модификатором R84 ... comp_N с IP 192.168.1.N и некоторым модификатором R3 Класть результаты будем, допустим, по пути C:\backup\ Теперь собственно о самой проблеме. В зависимости от IP компьютера-источника, необходимо класть данные в папку с модификатором, т.е. из comp_1 мы должны положить файлы в папку C:\backup\R13\ Можно ли в конструкции Код:
For %%i in (192.168.1.1 192.168.1.2 .. 192.168.1.N ) do call:backup %%i Может как-то парой их в txt засунуть и в цикле читать их оттуда и разбирать? Но как? В bat не силен. Спасибо. |
RuCosinus, например, так:
Код:
@echo off |
RuCosinus, Вам цикл и If не нужны вовсе, коль Вы всё равно перечисляете все Ваши Ip и модификаторы, а не вычисляете в цикле их соответствие. Если бы у Вас был просмотр всех Ip от 1 до N и им бы, например, соответствовали последовательно модификаторы R001 R002 ... R00N, цикл бы имел смысл. Я предлагаю такое построение батника
Код:
..... |
Iska
Спасибо, красиво. Вот что-то типа этого я и имел ввиду, когда задавал вопрос. megaloman И то правда :) Но очень уж, IMO, громоздко, что, правда, некоторым образом относится и к примеру Iska. Поковырявшись в интернете, решил вывести входные данные в отдельный файл, что сильно разгрузит батник от кучи перечислений (в примере Iska) или кучи повторяющихся команд (в примере megaloman). Нашел следующий пример Код:
For /F "usebackq tokens=1,2 delims=," %%i In ("%file%") Do () Код:
R13,192.168.1.1 Код:
For /F "usebackq tokens=1,2 delims=," %%i In ("%file%") call:backup Если делать без вызова, то бишь вот так: Код:
For /F "usebackq tokens=1,2 delims=," %%i In ("%file%") Do ( Помогите разобраться с этим. Еще у меня возникли несколько других вопросов, например по поводу exist, по поводу if-ов и обработки ошибок. Правильно ли я понимаю, что лучше для каждого вопроса создавать свою тему, дабы не валить все в кучу? Меня спамером и ботом, часом, не обзавут? :) |
RuCosinus, замените разделитель в Вашем файле с запятой на пробел
Код:
R13 192.168.1.1 Код:
@Echo Off Цитата:
If /? Exist /? и т.д. В помощь: Полезные ресурсы по скриптовым языкам администрирования Цитата:
|
Цитата:
|
Время: 04:57. |
Время: 04:57.
© OSzone.net 2001-