Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автосоздание папок и копирование в них с других ПК из лок.сети

Ответить
Настройки темы
CMD/BAT - [решено] Автосоздание папок и копирование в них с других ПК из лок.сети

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте!
В локалке есть ПК, на одном из разделов HDD которого находится папка Backup, куда каждый ВРУЧНУЮ копируются различные файлы за пред. день или текущие с разных ПК из локалки. Затем делается резервное копирование на стриммер. В папке Backup уже есть подпапки, имена которых совпадают с именами ПК-в с которых копируются файлы, например: PC1, PC2 и т.д. В каждой такой папке ВРУЧНУЮ делается папка с именем совпадающим с текущей датой создания оной, куда и купируютс вышеупомянутые файлы.
Как сделать так, чтобы каждый день, скажем утром, эти папки (совпадающие с текущей датой) создавались автоматом и в них копировались с соотв-х ПК соотв-е файлы.

Отправлено: 16:24, 30-07-2009

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Nuritdin, про "соотв-х ПК" понятно - список имен ПК по-видимому совпадает со списком подкаталогов папки Backup, а откуда брать "соотв-е файлы"?.. этот список файлов, подлежащих копированию, у каждого ПК свой или один на всех?.. как он называется, где лежит и хорошо-бы пример содержимого в несколько строк. Какой формат даты применяется для именования подпапок?.. "ДД-ММ-ГГГГ" или какой другой?.. Наконец, где лежит сама папка Backup - для конкретики желательно указывать полный путь.

Отправлено: 17:19, 30-07-2009 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


amel27, спасибо!
Пусть ПК на который собираются файлы с других ПК называется Mif-s. Локальный путь к папке Backup на Mif-s это E:\Backup, сетевой путь это - \\Mif-s\E$\Backup. В этой папке Backup есть подпапки Backup_PC1, Backup_PC2 и т.д., в которых должны создаваться подпапки с форматом текущей даты ДДММГГГГ.
У каждого PC1, PC2 и т.д. свои уникальные файлы, подлежащих копированию в свои соответствующие папки на Mif-s. Например, в папку E:\Backup\Backup_PC1\30072009(текущая дата) должны скопироваться 2 файла с компа PC1, находящиеся в \\PC1\C$\Folder1\file1.txt и \\PC1\C$\Folder1\file2.txt. А в папку E:\Backup\Backup_PC2\30072009 должны скопироваться 15 файлов с компа PC2, находящиеся в \\PC2\D$\Folder\file1.txt-file15.txt (15 штук). И т.д... Наконец с PC_N должны скопироваться другое кол-во файлов в E:\Backup\Backup_PC_N\30072009\files.txt.

Я написал элементарный батик для копирования всех файлов c PC1 на Mif-s, положил его в планировщик Scheduled Tasks на Mif-s, и он работает, вот он:
copy \\PC1\D$\Shared\data\Database\Fo_data\BACKUP\*.* F:\backup\backup_fo\1_2009\fo_backup

Мне же нужно чтобы копируемые данные с ПК на Mif-s сохранялись каждый день в новой папке с назв. текущей даты...

Отправлено: 18:26, 30-07-2009 | #3


Старожил


Сообщения: 426
Благодарности: 108

Профиль | Отправить PM | Цитировать


1. Использовать служебные шары типа "C$" не красиво, но может в данном случае разумно - 99% пользователей не смогут отключить шару.
2. Формат даты ДДММГГГГ хорош только когда таких каталогов не больше десятка-другого. В остальных случаях гораздо удобнее использовать дату в формате YYYYMMDD. Как-нибудь попробуйте и убедитесь в этом (в батнике генерация даты в этом формате имеется, надо только ее включить взамен Вашего варианта)
3. В списке копируемых ресурсов каталоги не должны заканчиваться символом "\", иначе ошибка гарантирована (но можно добавить операцию проверки)
4. Любой бэкап должен вести лог-файл. Подредактируйте его внешний вид под себя.

Код: Выделить весь код
@echo off
SetLocal EnableDelayedExpansion

rem Дата в формате YYYY-MM-DD для региона "Россия"
rem set D=%date:~6,4%-%date:~3,2%-%date:~0,2%

rem Дата в формате DDMMYYYY для региона "Россия"
set D=%date:.=%

rem Размещение и имя файла со списком копируемых данных
set List=C:\BackUp.lst

rem Для каталога Бэкапа нужно указать абсолютный путь
set BackUp=E:\BackUp\

rem Префикс для названия папок компьютеров, дописывается перед именем компа
set Pref=Backup_

set Log=%~dpn0.log

echo.>>%Log%
echo %date% %time% ==== Запуск процедуры копирования ====>>%Log%
if not Exist %List% (
echo Отредактируйте список с путями копируемых данных в файле %List%
echo # Это коментарий>%List%
echo.>>%List%
echo # А это сетевый пути для бэкапа:>>%List%
echo \\PC1\C$\Folder1>>%List%
echo \\PC2\D$\Folder\file*.txt>>%List%
echo Список для копирования пуст, создан пример, см: %List%>>%Log%
echo.>>%Log%
exit
)

rem переход на диск с бэкапом
%BackUp:~0,2%
echo %CD%>>%Log%

for /F "usebackq eol=# tokens=1* delims=\" %%P in ("%List%") do (
cd %BackUp%
if not exist %Pref%%%P md %Pref%%%P
cd %Pref%%%P
if not exist %D% md %D%
cd %D%
md %%Q
cd %%Q
title Копирование \\%%P\%%Q
set Txt=!date! !time! Копирование \\%%P\%%Q
rem Если подкаталоги копировать не надо, то убираем ключ "/S".
xcopy \\%%P\%%Q /C /Q /G /H /K /Y /O /S
set Err=!ErrorLevel!
if !Err!==0 (set Txt=!Txt! прошло успешно) else (set Txt=!Txt! закончилось с ошибкой N!Err!)
echo !Txt!>>%Log%
)
ЗЫ: В скрипте включена опция "EnableDelayedExpansion" - из-за этого использование символов "!" в путях ЗАПРЕЩЕНО!

Последний раз редактировалось NiOl, 30-07-2009 в 19:53. Причина: постскриптум

Это сообщение посчитали полезным следующие участники:

Отправлено: 19:50, 30-07-2009 | #4



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Автосоздание папок и копирование в них с других ПК из лок.сети

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - [решено] Непонятная проблемма лок.сети и ноутбука (офис <-> туннель <-> склад) Alex-4u Сетевые технологии 13 08-05-2009 11:53
Службы - [решено] Как работает ДНС в локальной сети и много других вопросов. BROTHERHOOD Microsoft Windows 2000/XP 5 07-05-2008 18:07
Разное - копирование папок gipper2006 Microsoft Windows 2000/XP 6 04-05-2008 12:28
Разное - как отключить автосоздание личных папок ? geepnozeex Автоматическая установка Windows 2000/XP/2003 2 20-10-2007 01:36
Копирование папок Vasosel Microsoft Windows NT/2000/2003 9 23-08-2006 10:30




 
Переход