CMD. Множественное копирование файлов.

CMD. Множественное копирование файлов.Ах, копирование файлов на удалённые узлы — это почти как раздача конфет в детском саду: вроде всё просто, но если не уследить, то и очередь выстроится, и кто-то останется без сладкого. Особенно когда речь заходит о гигабайтах данных — тут уж никакой «последовательный» метод не спасёт, если только вы не хотите провести весь вечер в компании прогресс-бара и чашки холодного кофе.

В оригинальной статье автор рассказывал, как копировать файлы один за одним на разные компьютеры.

Представьте себе: вы стоите у кассы с огромной сумкой покупок, а перед вами — 10 человек, каждый хочет получить свой пакет. Вы отдаёте одному, потом другому… и так далее. К сожалению, терпение у всех ограничено. Поэтому мы решили сделать этот процесс более весёлым и параллельным — одновременно раздавать пакеты аж пяти счастливчикам!

Но есть одно «но»: количество свободных меток дисков ограничено. Это примерно как лимит на количество блюд в шведском столе — столько съесть можно, но не больше.

Чтобы организовать этот праздник копирования с юмором и порядком, нам понадобится файл ip_list.txt. В первой строке у нас лежит путь к файлам (ну да, куда же без адреса доставки?), а начиная со второй — IP-адреса тех самых удалённых узлов.

Это как список гостей на вечеринке: сначала место проведения пишем, а потом имена приглашённых.

Дальше начинается магия bat-файла! Команда @echo off отключает вывод текста в терминал — чтобы никто не мешал наслаждаться тишиной во время процесса (или чтобы никто не увидел наших ошибок). А вот Setlocal EnableDelayedExpansion — звучит страшно?

На самом деле это как включить режим супергероя для переменных: они теперь могут менять своё значение прямо на ходу внутри циклов! Только обращаться к ним нужно через восклицательный знак (!i!), иначе они обидятся и перестанут работать.

Подсчёт строк в ip_list.txt напоминает мне анекдот про программиста: «Почему программисты всегда путают Хэллоуин и Рождество? Потому что Oct 31 == Dec 25».

Тут тоже важен правильный счёт — ведь первая строка у нас путь к файлам, а остальные — адреса узлов. Если вдруг узлов станет больше пяти (вот это вечеринка!), программа скажет: «IP addresses more than 5» и уйдёт отдыхать.

Не хотите же вы устраивать хаос с десятью одновременными копиями и перегружать систему!

Затем переменная path_to_file ловит первый адрес из файла ip_list.txt — словно курьер забирает посылку для доставки. А дальше начинается весёлый цикл FOR /F «skip=1» %%a IN (%~dp0ip_list.txt): мы пропускаем первую строку (путь), а потом каждому IP адресу присваиваем метку диска от Z: до U:.

Это как раздавать разноцветные бейджики гостям вечеринки — чтобы никто не потерялся.

Команда start запускает отдельное окно для каждого копирования — представьте несколько официантов одновременно разносящих блюда по залу: быстрее и веселее! Каждый официант знает свой стол (ip-адрес), меню (путь к файлам), номер заказа (счётчик i) и цвет бейджа (метка диска).

Ну а copy_files.bat — это уже настоящий герой нашего шоу! Здесь задаются логин и пароль пользователя (надо же знать, кому открывать дверь), принимаются параметры из главного bat-файла: IP адрес узла, путь к файлам, имя лога (чтобы потом вспомнить все приключения) и метка диска.

This entry was posted in Администрирование систем. Bookmark the permalink.

One Response to CMD. Множественное копирование файлов.

  1. GameSnout says:

    Параллельное копирование файлов на удалённые узлы значительно ускоряет процесс, но требует учёта ограничений, таких как количество доступных меток дисков. Использование файла ip_list.txt с путём к файлам и списком IP-адресов помогает организовать эффективную и упорядоченную «раздачу» данных.

Comments are closed.