|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Передача двойных параметров в цикле |
|
CMD/BAT - [решено] Передача двойных параметров в цикле
|
Новый участник Сообщения: 4 |
Добрый вечер.
Есть несколько компьютеров с которых необходимо бэкапить данные. Допустим для простоты их 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 -- -- :backup if %1==IP_1 BACKUP_FOLDER=Modificator_1 if %1==IP_2 BACKUP_FOLDER=Modificator_2 if %1==IP_3 BACKUP_FOLDER=Modificator_3 ... if %1==IP_N BACKUP_FOLDER=Modificator_N Может как-то парой их в txt засунуть и в цикле читать их оттуда и разбирать? Но как? В bat не силен. Спасибо. |
|
Отправлено: 21:43, 27-10-2011 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать RuCosinus, например, так:
|
Отправлено: 22:18, 27-10-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2733
|
Профиль | Отправить PM | Цитировать RuCosinus, Вам цикл и If не нужны вовсе, коль Вы всё равно перечисляете все Ваши Ip и модификаторы, а не вычисляете в цикле их соответствие. Если бы у Вас был просмотр всех Ip от 1 до N и им бы, например, соответствовали последовательно модификаторы R001 R002 ... R00N, цикл бы имел смысл. Я предлагаю такое построение батника
|
------- Отправлено: 09:08, 28-10-2011 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Iska
Спасибо, красиво. Вот что-то типа этого я и имел ввиду, когда задавал вопрос. megaloman И то правда ![]() Поковырявшись в интернете, решил вывести входные данные в отдельный файл, что сильно разгрузит батник от кучи перечислений (в примере Iska) или кучи повторяющихся команд (в примере megaloman). Нашел следующий пример Файл данных простой донельзя Но наткнулся на ограничение. При конструкции следующего вида: в функции backup не виден %%j. Подозреваю это оттого, что я не разобрался с вот этим usebackq. Если делать без вызова, то бишь вот так: For /F "usebackq tokens=1,2 delims=," %%i In ("%file%") Do ( SET SRC_PATH=\\%%j\data echo %SRC_PATH% echo %%i %%j ) ![]() Помогите разобраться с этим. Еще у меня возникли несколько других вопросов, например по поводу exist, по поводу if-ов и обработки ошибок. Правильно ли я понимаю, что лучше для каждого вопроса создавать свою тему, дабы не валить все в кучу? Меня спамером и ботом, часом, не обзавут? ![]() |
Отправлено: 15:24, 28-10-2011 | #4 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать RuCosinus, замените разделитель в Вашем файле с запятой на пробел
и все станет просто:
@Echo Off :: Обрабатываемый файл Set file=e:\Temp\in.txt for /f "usebackq delims=" %%a in ("%file%") do call :backup %%a Pause>Nul :backup Echo %1 Echo %2 GoTo :EOF Цитата RuCosinus:
If /? Exist /? и т.д. В помощь: Полезные ресурсы по скриптовым языкам администрирования Цитата RuCosinus:
|
|||
Отправлено: 16:17, 28-10-2011 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата RuCosinus:
|
|
Отправлено: 18:24, 28-10-2011 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Передача параметров функциям Winapi (например, Beep) из консоли | hiatis | Скриптовые языки администрирования Windows | 0 | 21-04-2010 00:00 | |
Передача параметров в адресную строку | DaRiYs | Вебмастеру | 4 | 27-06-2008 01:52 | |
C/C++ | Передача параметров через консоль | Mad Mouse | Программирование и базы данных | 4 | 09-03-2006 16:34 | |
передача параметров в коммандной строке | netcat | Хочу все знать | 4 | 29-04-2005 00:30 | |
передача параметров для SSI | Vlad Drakula | Вебмастеру | 3 | 30-05-2003 16:50 |
|