![]() |
Помогите с копированием файла(ов) в сетевые папки
Добрый день.
Буду признателен местным гуру за помощь в решении 2х (одна простая,вторая немого сложнее), но очень важных задач. Первая: 1. В некой локальной папке лежит батник. 2. В эту папку подкидываем файл(ы) - это может быть и екселевский, и текстовый, и архив и катртинка... 3. Запускаем батник и он копирует все в 25 папок на сервере (названия папок на известны). Батник копировать не надо,он остаетса в директории. Вторую опишу чуть позже. Спасибо |
Цитата:
|
Цитата:
1. 2. Локальний диск D:\Source\ тут лежит батник и подкидываем файли в эту директорию 3. Уточняю: - Целевые директории,например: \\server1\snd\Dir.01 \\server1\snd\Dir.02 \\server1\snd\Dir.03 ... \\server1\snd\Dir.25 они созданы и всегда там есть (это папки для адресатов, почтовый скрипт ее регулярно сканирует и чистит) - файл копируем - если файл уже такой есть, то оставляем той что был. |
Цитата:
|
Цитата:
а по сути есть еще предложения? а то я написании батников полный нулл... |
ZamUtil, батник, в простейшем случае - это просто список команд (каждая на отдельной строке), которые нужно последовательно выполнить. Вам нужно копировать, вот и вводим в Яндекс/Google "команда копирования".
Таким образом получите такую же хрень, как напишет кто-либо из форумчан. Потому что автоматизация так не делается - нужно вести логи работы; обрабатывать ошибки, громко сообщать о них и т.п. Лучше воспользуйтесь каким-нибудь готовым приложением для синхронизации/резервного копирования. |
Цитата:
это и есть первая задачка: один файл всем. С Вашего вопроса плавно перейдем ко 2й задачке: есть кучка однотипных файлов, у каждого на 12- и 13-й позиции имени стоят циферки (00, 01, .... 25) как уже говорилось ранее есть (сори, не 25) 26 директорий. так вот по 12му + 13му символу нужно определить в какую из директорий нужно копирнуть файл. то есть \\server1\snd\Dir.00 - получит файл хххххххххх.00.ххх \\server1\snd\Dir.01 - получит файл хххххххххх.01.ххх \\server1\snd\Dir.02 - получит файл хххххххххх.02.ххх \\server1\snd\Dir.03 - получит файл хххххххххх.03.ххх ... \\server1\snd\Dir.24 - получит файл хххххххххх.25.ххх (это не ошибка!!, см. ниже) \\server1\snd\Dir.25 - получит файл хххххххххх.24.ххх (это не ошибка!!, см. ниже) По поводу 24-й и 25-й директории: существует не соответствие, и это факт. я ничего с этим не смогу сделать. такие дела.... |
for, dir, if, set, copy, move эти команды вам будут нужны для создания скрипта автоматизации (в первом приближении, возможно что-то еще подтянется).
алгоритм следующий, в цикле (for) получаем командой dir список файлов, анализируем 12-13 позицию: set pos=%%a, set pos=%~pos:12,2%, в if определяем в какую папку копировать, копируем/перемещаем. писать за вас никто не будет. Поищите по форуму, примеры есть. cmd /k help set и help указанные выше команды (for, dir, if, set, copy, move ) а также вдумчивое изучение множества букв которые выводятся по этим командам, сделают из вашего полного нулла, класного специалиста. |
Код:
@Echo Off В переменной Inbox=E:\Delete\Inbox укажите исходную папку (у Вас это D:\Source ) Ваши пути не написал, так как отлаживал у себя - не вижу смысла подставлять ваши условные имена. Если файлы успешно скопируются во все 25 папок, исходный файл удаляю. Если этого делать не надо, убейте строку If !OK!==0 Del %%f и все остальные строки где помянута переменная ОК Батник НЕ ДОЛЖЕН находиться внутри папки с исходными файлами, так как я этого не предусмотрел. Можно и это предусмотреть, но пока лень. |
Вот вариант второй задачи
Код:
@Echo Off |
Еще вариант
Код:
@Echo Off |
megaloman, спасибо. спасибо за реальный пример)
буду в понедельник на работе - попробую, отпишусь. |
чет не работает...(
|
а нечёт? Что конкретно не получается? Для начала сделайте Echo On и попытайтесь осмыслить сообщения об ошибках, если они есть. А чёт - слишком мало ... Тяжело въезжать в задачу после месячного перерыва
|
Всем привет!
Извиняюсь что вопрос не по данной теме....... я новичок и не знаю куда можно было написать данное сообщение. Помогите пожалуйсто ребята, вот такая проблема возникла: На удалённом компе положил в расшаренную папку файл, а как открыть его чтоб он не у меня включался а на удалённом компе? В командной строке пробовал так: C:\user\administrator>start \\192.168.04.15\temp\000.exe но файл включается у меня на компе, так как запустить файл на удалённом компе? Простите ещё раз.... |
Цитата:
|
Спасибо но я думаю это больше подойдёт для системных админов это очень сложно и я не понимаю в этом, просто мне когда то попалась статья где описано было как это делать с командной строки легко и просто...... у меня винда 7 может это влеяет на то что не могу открыть файл на удалённом компе?
|
Цитата:
Там по-русски написано, и приведены примеры. Расценивайте это как вызов своему интеллекту. |
Цитата:
|
Время: 20:22. |
Время: 20:22.
© OSzone.net 2001-