|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - помогите правильно составить bat файл с командой xcopy |
|
CMD/BAT - помогите правильно составить bat файл с командой xcopy
|
Пользователь Сообщения: 62 |
Профиль | Отправить PM | Цитировать необходимо автоматизировать копирование файлов из директории C: (папка stam) на флешку D: (папка gibuy)
создал bat файл, в нем написал xcopy "C:\stam\*.*" "D:\gibuy\*.*" - работает нормально. Дальше надо усложнить задачу. На компе (xp) работает прога, для которой каждый день создается бэкап (размер около 50 мб) и сохраняется с расширением .rar прямо на C: (изменить место сохранения невозможно). Как правильно использовать команду xcopy, т.е. с какими параметрами, чтобы из C: копировались только файлы с расширением rar на флешку, и чтобы повторно не копировались старые файлы. Спасибо заранее! |
|
Отправлено: 15:46, 13-02-2012 |
Ветеран Сообщения: 1272
|
Профиль | Отправить PM | Цитировать |
Отправлено: 16:47, 13-02-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Пользователь Сообщения: 62
|
Профиль | Отправить PM | Цитировать El Sanchez, спасибо! Еще вопрос, поставил этот файл в планировщик, еще один планировщик на выключение компа (shutdown -s) стоит на 5 минут позже. А нельзя-ли объединить эти два bat файла в один, чтобы сработали последовательно, сразу же после выполнения копирования комп выключался?
|
Последний раз редактировалось treevalera, 14-02-2012 в 12:43. Отправлено: 08:46, 14-02-2012 | #3 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Подниму тему, дабы не плодить лишние.
Есть конструкция: @ECHO off @COLOR 3 @CHCP 866 SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION CLS :Start ECHO ================================== ECHO 5 -Sirene ECHO 0 -Выход ECHO ================================== SET PathLocal=\\MyPC\Data\Programms SET /p variant=Ваш выбор = ::IF /i %variant%==5 GOTO Test IF /i %variant%==5 GOTO Sirene IF /i %variant%==0 EXIT GOTO :error :Sirene CLS IF EXIST %PathLocal%\Sirene\%COMPUTERNAME% ( SET path=%PathLocal%\Sirene\%COMPUTERNAME% FOR /f "TOKENS=*" %%i IN ('DIR /b "!path!"') DO ( SET result=%%i if "!result:~0,4!"=="gfum" ( xcopy %PathLocal%\Sirene\%COMPUTERNAME% C:\%result%\/e/i/q/h/y Pause ) cls ) GOTO :Start ) ECHO Для вашего ПК нет терминала Sirene, обратитесь к руководителю GOTO :Start отвечает " 'xcopy' is not recognized as internal or external command, operable program or bach file..." НО, если переместить эту же команду в отдельную точку входа :Test (Специально оставил как комент в листинге) с необходимым указанием всех переменных -все копируется исправно. Вот отдельный пример конструкции для проверки: :Test set result=gfum33 xcopy %PathLocal%\Sirene\%COMPUTERNAME% C:\%result%\/e/i/q/h/y pause Проверяю на локальной машине, по сути есть на сервере папка в которой содержатся папки с названиями, идентичными именам машин в сети, при работе файла он опрашивает по адресу "свою папку" и берет от туда нужную для себя копию папки. копии отличаются только по номерам, основание одно "gfum" все опознается, находится, но вот при вхождении в цикл для копирования - ошибка поправьте, где ошибся пожалуйста. внутрь цикла причем попадает Pause срабатывает исправно, просто ограничение ф-ции какое-то, которое я не понимаю. |
Последний раз редактировалось Instant_SR, 25-07-2013 в 18:41. Отправлено: 16:15, 25-07-2013 | #4 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Instant_SR, ознакомьтесь, пожалуйста, с тэгом [code].
|
|
Отправлено: 16:30, 25-07-2013 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:22, 25-07-2013 | #6 |
Ветеран Сообщения: 1272
|
Профиль | Отправить PM | Цитировать Цитата Instant_SR:
|
|
Отправлено: 18:20, 25-07-2013 | #7 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Iska, исправлял только часть кода. во время проверки, видимо. слетели исправления... жду ответа по сути?
|
Отправлено: 18:42, 25-07-2013 | #8 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать El Sanchez, спасибо за наводку, теперь вопрос по обходу политик:
с первого раза не создается директория, повторно выполняешь операцию - создается нужная директория и файлы копируются, попробовал в цикле поставить "костыль" сделал копию процедуры копирования - не получилось, необходим именно повторный заход в процедуру... :Sirene CLS IF EXIST %PathLocal%\Sirene\%COMPUTERNAME% ( FOR /f "TOKENS=*" %%i IN ('DIR /b "%PathLocal%\Sirene\%COMPUTERNAME%"') DO ( SET result=%%i if "!result:~0,4!"=="gfum" ( xcopy %PathLocal%\Sirene\%COMPUTERNAME%\%result% C:\%result%/e/i/q/h/y ) cls ) GOTO :Start ) ECHO Для вашего ПК нет терминала Sirene, обратитесь к руководителю GOTO :Start |
Отправлено: 19:03, 25-07-2013 | #9 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:25, 25-07-2013 | #10 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
[решено] xcopy спрашивает файл или директория | mitiya | Автоматическая установка Windows 2000/XP/2003 | 10 | 03-06-2019 11:08 | |
[решено] Помогите правильно сделать запись в ini файл. | Anarasius | AutoIt | 5 | 23-04-2010 19:32 | |
CMD/BAT - [решено] нельзя назвать батник делающий xcopy, xcopy.bat почему ? | foxbat | Скриптовые языки администрирования Windows | 3 | 17-09-2009 05:33 | |
Разное - Помогите алгоритм составить | MaZaFaKa46 | Программирование и базы данных | 3 | 28-12-2008 22:00 | |
CMD/BAT - [решено] XCOPY: «это файл или папка» | akrav | Скриптовые языки администрирования Windows | 12 | 09-07-2008 12:39 |
|