Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.58/64: Рейтинг темы: голосов - 64, средняя оценка - 4.58
GermanyGEARS
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 4
1

Циклическое копирование файлов и папок

19.02.2014, 16:33. Просмотров 11755. Ответов 4
Метки нет (Все метки)

Здравствуйте. Требуется создать цикл, в котором каждые 30 секунд будет копироваться все содержимое папки c:\111 (включая подпапки и файлы=около 200 кб) в папку c:\222\папка назначения с именем типа дата_время, при этом папки назначения должны создаваться новые при каждом повторе цикла.

Я новичок в этом. Вот до чего додумался, но что-то не вяжется.

Bash
1
2
3
4
5
set sFolderName=date% (%time:~0,-3%) 
:loop
xcopy "C:\111" "C:\222\md "%sFolderName::=-%"" /S /E
ping -n 1 -w 30000 192.168.254.254 >nul
goto loop
Помогите пожалуйста.

Добавлено через 1 час 29 минут
Bash
1
2
3
4
5
6
7
8
9
10
@echo off
set sFolderName=%date% (%time:~0,-3%)
set sourcedir=C:\Program Files (x86)\111
set destdir=C:\Program Files (x86)\222\"%sFolderName::=-%"
 
:loop
md %destdir%
xcopy "%sourcedir%" "%destdir%"" /S /E
ping -n 1 -w 30000 192.168.254.254 >nul
goto loop
Опять мимо, но ближе. Файлы не копируются, но создаётся много папок с раздельными названиями (типа Program, Files, (x86), 222)
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 16:33
Ответы с готовыми решениями:

Циклическое копирование файлов с использованием команды XCOPY
Здравствуйте. Я хочу скопировать определённые файлы из одной директории в...

Копирование файлов из нескольких папок
Товарищи подскажите. Есть одна большая мега папка. В ней есть очень много...

Резервное копирование файлов и папок
В общем есть папка допустим "С:\sara" размер ее 300 и билие гиг. Что нужно : ...

Копирование файлов за прошедший день из папок
Друзья, пожалуйста помогите решить задачу. Каждый день в папку C:\1 приходит...

Копирование структуры папок и файлов по маске
Добрый день, перекопал форум но так и не допер как это сделать(( Задача...

4
YupiRex
186 / 143 / 32
Регистрация: 04.10.2013
Сообщений: 149
19.02.2014, 17:03 2
по поводу первого сообщения:
Bash
1
2
3
4
5
6
:loop
set sFolderName=%date%(%time:~0,-3%)
md C:\222\%sFolderName::=-%
xcopy "C:\111" "C:\222\%sFolderName::=-%" /S /E 
ping -n 1 -w 30000 192.168.254.254 >nul
goto loop
Добавлено через 4 минуты
Цитата Сообщение от GermanyGEARS Посмотреть сообщение
xcopy "%sourcedir%" "%destdir%"" /S /E
кажется там в конце кавычка лишняя

Добавлено через 11 минут
по поводу второго:
Кликните здесь для просмотра всего текста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
:: sFolderName - лучше задать без пробелов
set sFolderName=%date%(%time:~0,-3%)
set sourcedir=C:\111
::  здесь кавычки не нужны потому что они есть в "%destdir%" или ставить всю переменную 
set "destdir=C:\222\%sFolderName::=-%"
 
:loop
md %destdir%
xcopy "%sourcedir%" "%destdir%" /S /E
ping -n 1 -w 30000 192.168.254.254 >nul
goto loop
0
GermanyGEARS
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 4
19.02.2014, 17:18  [ТС] 3
Не получается. Путь длинный. 111 и 222 это образный путь. Сейчас скину полный и cmd окно. Он почему-то создаёт все папки по одной вычленяя их названия из пути. То есть c:\program files\server\19.02.14 он не заявляет как путь, а создаёт папки разделенные слешем. Program - Files - x86 - server - 19.02.14 через тире указаны созданные папки.

Батник по которому производился тест

Bash
1
2
3
4
5
6
:loop
set sFolderName=%date% (%time:~0,-3%)
md C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\saves BACKUPS\%sFolderName::=_%
xcopy "C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\undefined" "C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\saves BACKUPS\%sFolderName::=-%" /S /E
ping -n 1 -w 30000 192.168.254.254 >nul
goto loop
0
Миниатюры
Циклическое копирование файлов и папок  
sov44
1760 / 744 / 128
Регистрация: 09.04.2011
Сообщений: 1,314
19.02.2014, 17:36 4
GermanyGEARS, ошибка в том, что не хватает кавычек в пути с пробелами.
Bash
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion
 
:loop
set sFolderName=%date% (%time:~0,-3%)
set sFolderName=%sFolderName::=_%
set in=C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\undefined
set out=C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\saves BACKUPS\%sFolderName%
if not exist "%out%" md "%out%"
xcopy /S /E "%in%" "%out%\" 1>nul
ping -n 1 -w 30000 192.168.254.254 >nul
goto loop
0
GermanyGEARS
0 / 0 / 0
Регистрация: 19.02.2014
Сообщений: 4
19.02.2014, 17:51  [ТС] 5
Решил проблему.

Bash
1
2
3
4
5
:loop
set sFolderName=%date% (%time:~0,-3%)
xcopy "C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\undefined" "C:\Program Files (x86)\RUST\Rust Server v19.12.2013\Save\saves BACKUPS\%sFolderName::=-%" /S /E /I
ping -n 1 -w 30000 192.255.255.255 >nul
goto loop
Команда xcopy не нуждается в MD и создаёт папку с датой вместо имени автоматом при копировании.
Добавил к xcopy параметр /I для удаления проверки каталог или файл
Пинг проходил по данному айпи.=сменил
Всё отлично работает. Вы не представляете как я рад=)
Спасибо за потраченное время и вашу помощь!
0
19.02.2014, 17:51
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 17:51

Копирование файлов из папок за 1,10,20 число каждого месяца
Доброго времени суток. Есть папка Backup с подпапками, в которых хрняться...

Копирование и удаление файлов на основе анализа содержимого двух папок
Добрый день! Снова нужна Ваша помощь по bat-файлу, задача в следующем: Есть...

Копирование нескольких определённых файлов и папок в одну определённую папку
Уважаемые форумчане мне нужен скрипт копирования папок и определенных файлов....


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

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

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