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

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

Ответить
Настройки темы
CMD/BAT - помогите правильно составить bat файл с командой xcopy

Пользователь


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


Конфигурация

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


необходимо автоматизировать копирование файлов из директории C: (папка stam) на флешку D: (папка gibuy)
создал bat файл, в нем написал xcopy "C:\stam\*.*" "D:\gibuy\*.*" - работает нормально.
Дальше надо усложнить задачу.
На компе (xp) работает прога, для которой каждый день создается бэкап (размер около 50 мб) и сохраняется с расширением .rar прямо на C: (изменить место сохранения невозможно). Как правильно использовать команду xcopy, т.е. с какими параметрами, чтобы из C: копировались только файлы с расширением rar на флешку, и чтобы повторно не копировались старые файлы.
Спасибо заранее!

Отправлено: 15:46, 13-02-2012

 

Аватара для El Sanchez

Ветеран


Contributor


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

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


treevalera,
Код: Выделить весь код
xCopy /YD "C:\*.rar" "D:\gibuy\"
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:47, 13-02-2012 | #2



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

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


Пользователь


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

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


El Sanchez, спасибо! Еще вопрос, поставил этот файл в планировщик, еще один планировщик на выключение компа (shutdown -s) стоит на 5 минут позже. А нельзя-ли объединить эти два bat файла в один, чтобы сработали последовательно, сразу же после выполнения копирования комп выключался?

Последний раз редактировалось treevalera, 14-02-2012 в 12:43.


Отправлено: 08:46, 14-02-2012 | #3


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


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

Профиль | Отправить 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 не хочет работать:
отвечает " '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
Благодарности: 8087

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


Instant_SR, ознакомьтесь, пожалуйста, с тэгом [code].

Отправлено: 16:30, 25-07-2013 | #5


Ветеран


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

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


Цитата Instant_SR:
Iska, ознакомился, »
Пока сие незаметно.

Отправлено: 17:22, 25-07-2013 | #6


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Instant_SR:
SET path=%PathLocal%\Sirene\%COMPUTERNAME% »
Instant_SR, на время выполнения сценария вы переназначили системную переменную PATH, поэтому и xcopy не нашлась.
Это сообщение посчитали полезным следующие участники:

Отправлено: 18:20, 25-07-2013 | #7


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


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

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


Iska, исправлял только часть кода. во время проверки, видимо. слетели исправления... жду ответа по сути?

Отправлено: 18:42, 25-07-2013 | #8


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


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

Профиль | Отправить 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
Благодарности: 1

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


решил проблему:
Код: Выделить весь код
if "!result:~0,4!"=="gfum" (
		xcopy %PathLocal%\Sirene\%COMPUTERNAME%\!result! C:\!result!\/e/i/q/h/y
		)

Отправлено: 19:25, 25-07-2013 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
[решено] 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




 
Переход