Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
NeoMatrix
Модератор
Эксперт NIX
5471 / 1294 / 89
Регистрация: 24.05.2011
Сообщений: 10,648
Записей в блоге: 2
1

Копирование нескольких файлов из локальной папки в две сетевые папки с последующим удалением исходных файлов

22.10.2015, 16:46. Просмотров 929. Ответов 3
Метки нет (Все метки)

Есть практическая задача: нужно накидать батник, который будет в определённое время брать из одной локальной папки несколько файлов и копировать в две другие на сетевом диске.
После успешного копирования нужно удалить файлы из исходной локальной папки.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.10.2015, 16:46
Ответы с готовыми решениями:

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот...

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и...

Копирование файлов по списку в текстовом файле в папки с именами, соответствующими расширениям этих файлов
Добрый день, уважаемые форумчане. Прошу помощи с написанием bat-файла. Значит задача такая. Есть...

Копирование файлов в нужные папки, исходя из имён файлов
подскажите, задача примерно аналогичная в папке множество файлов wav, у всех в начале присутствует...

Копирование файлов в папки по маске файла и маске папки
Добрый день! Товарищи, помогите. Возникла надобность раскладывать файлы по маске папки и маске...

3
Jabbson
Эксперт по компьютерным сетям
3446 / 2491 / 777
Регистрация: 03.11.2009
Сообщений: 7,933
Записей в блоге: 3
22.10.2015, 18:07 2
Лучший ответ Сообщение было отмечено NeoMatrix как решение

Решение

навскидку
Windows Batch file
1
2
3
4
5
@echo off 
xcopy /y "drive:\path\to\local\folder" "\\path\to\remote\folder"
if errorlevel 0 (
    del /Q "drive:\path\to\local\folder\*.*"
)
+

How To Schedule Tasks in Windows XP


По поводу "несколько" файлов - маской, если маскируется, если не маскируется - несколько копирований или в цикл.

можно через robocopy \source \\destination /MOV
1
Dragokas
Эксперт WindowsАвтор FAQ
17058 / 7113 / 861
Регистрация: 25.12.2011
Сообщений: 10,924
Записей в блоге: 16
22.10.2015, 21:21 3
Лучший ответ Сообщение было отмечено NeoMatrix как решение

Решение

Если с учетом копирования файлов с атрибутами RS и H:
Windows Batch file
1
2
3
4
5
@echo off
SetLocal
set src=drive:\path\to\local\folder
set dst=\\path\to\remote\folder
xcopy /c /h /r /y /i /k "%src%" "%dst%" && del /F /A /Q "%src%\*"
Но я бы не советовал так делать. Дело в том, что xcopy возвращает УСПЕХ, даже если один из файлов не был скопирован по причине обрыва подключения, занятости файла и т.п. При этом все исходные файлы будут удалены.

Лучше воспользоваться robocopy, там должен быть специальный ключик.
Перечислять каждый файл отдельно с проверкой кода тоже не вариант. Там какой-то баг, код ошибки "гасится". Может у кого-то будет желание поразбираться.
Можно попробовать контрольную проверку чексуммы через команду FC, но я не готов ответить поддерживает ли она сетевые пути.

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
@echo off
SetLocal EnableExtensions
 
set src=drive:\path\to\local\folder
set dst=\\path\to\remote\folder
 
For /F "delims=" %%a in ('dir /b /a-d "%src%\*"') do (
  xcopy /c /h /r /y /i /k "%src%\%%a" "%dst%"
  FC /B "%src%\%%a" "%dst%" && del /F /A "%src%\%%a"
)
pause

На счет остального:

Windows Batch file
1
if errorlevel 0
- это от нуля и больше.
Правильно -
Windows Batch file
1
if not errorlevel 1
или
Windows Batch file
1
if %errorlevel% neq 0
если отрицательные коды возврата также нужно учитывать за неудачу.
3
mir16
86 / 80 / 42
Регистрация: 27.09.2015
Сообщений: 315
23.10.2015, 14:22 4
Цитата Сообщение от Dragokas
Перечислять каждый файл отдельно с проверкой кода тоже не вариант. Там какой-то баг, код ошибки "гасится". Может у кого-то будет желание поразбираться.
xcopy /c
/c Продолжать копирование даже если ошибка имеет место
Этот ключ и гасит (или разжигает ) зеро.. Отсутствие ключа (!)не прерывает копирования, но выводит в еррорлевел отличный от нуля код, в случае с вордом "4" Sharing violation
Цитата Сообщение от Dragokas
Попробуйте закинуть в папку 2 и 3 файл 123.doc, затем открыть его вордом из папки 3 и запустить бат.
ИМХО: Автор xcopy дал неправильную характеристику ключу "/c".. ввёл в заблуждение честной люд.. Имел ввиду, что даже при проверке на еррорлевел копирование продолжится благодаря этому ключу, а написал вон оно как..
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.10.2015, 14:22

Копирование: Ввод имени папки и копирование из нее файлов
Доброго времени суток! Реально ли реализовать подобное с помощью bat ? Знаю, что можно создать...

Копирование файлов в разные папки
Имеется у нас скачанный: avto.bat который находиться у меня к примеру в одной папке с readme.txt ...

Копирование определённого количества файлов из папки
Нужно скопировать определенное количество файлов из папки.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru