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

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

Ответить
Настройки темы
CMD/BAT - [решено] копирование BAT

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


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

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


Изменения
Автор: 55kadi
Дата: 27-10-2016
на диске C: есть папка C:\LOGO\555
в папке 555 есть 3 файла
1.cfg
2.so
3.BIN
как скопировать эти 3 файла в другую папку и под папки в ней с заменой этих файлов если существуют C:\LOGO\new\launch\968000000000

Отправлено: 01:08, 27-10-2016

 

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


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

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


да это папка 968000000000

в ней 100 разных папок в эти папки мне и надо скопировать эти 3 файла если они там есть то с заменой

Последний раз редактировалось 55kadi, 27-10-2016 в 01:29.


Отправлено: 01:24, 27-10-2016 | #2



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

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


Ветеран


Contributor


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

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


Код: Выделить весь код
@Echo Off

Set  "InBox=C:\LOGO\555"
Set "OutBox=C:\LOGO\new\launch\968000000000"

Pushd %InBox%

Xcopy "1.cfg" "%OutBox%\" /Y /D /R /H /C /K >nul
Xcopy "2.so" "%OutBox%\" /Y /D /R /H /C /K >nul
Xcopy "3.bin" "%OutBox%\" /Y /D /R /H /C /K >nul

FOR /F "usebackq delims=" %%d IN (`Dir /B /A:D 2^>nul`) DO (
	Xcopy "%%d" "%OutBox%\%%d\" /Y /D /E /R /H /C /K >nul 
)
popd
GoTo :Eof
Обратите внимание на ключ /D в команде Xcopy: копируются только те файлы, которые новее в исходной папке. Это существенно ускорит процесс. Если Вам каждый раз хочется копировать с перезаписью абсолютно всё - этот ключ уберите.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 28-10-2016 в 05:11.


Отправлено: 10:49, 27-10-2016 | #3


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


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

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


пишет неправильно указан диск в чем проблема

Последний раз редактировалось 55kadi, 28-10-2016 в 22:20.


Отправлено: 19:49, 27-10-2016 | #4


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


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

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


работает разобрался изменил букву названия диска С: с большой на маленькую с:

но осталась одна проблема эти 3 файла он копирует в папку 968000000000

а мне надо скопировать эти 3 файла с заменой в папки их порядка 100 штук которые находяться в папке 968000000000

@Echo Off

Set "InBox=с:\LOGO\555"
Set "OutBox=с:\LOGO\new\launch\968000000000"

Pushd %InBox%

Xcopy "1.cfg" "%OutBox%\" /Y /D /R /H /C /K >nul
Xcopy "2.so" "%OutBox%\" /Y /D /R /H /C /K >nul
Xcopy "3.bin" "%OutBox%\" /Y /D /R /H /C /K >nul

FOR /F "usebackq delims=" %%d IN (`Dir /B /A:D 2^>nul`) DO (
Xcopy "%%d" "%OutBox%\%%d\" /Y /D /E /R /H /C /K >nul
)
popd
GoTo :Eof

Отправлено: 01:11, 28-10-2016 | #5


Ветеран


Contributor


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

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


55kadi, я, похоже, неверно понял задачу. Мой скрипт из папки 555 берёт 3 файла и все подпапки в ней и копирует в папку 968000. А что нужно Вам? Взять из папки 555 три файла и скопировать их во все подпапки папки 968000? А если в этих папках есть тоже подпапки более глубокого уровня, то и туда копировать тоже?
О букве "c" в имени диска- неважно, большая она или маленькая, главное, чтобы она была латинская а не русская, вполне возможно, что это я виноват- у меня при отладке была другая буква диска, не C.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 05:10, 28-10-2016 | #6


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


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

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


Взять из папки 555 три файла и скопировать их во все подпапки папки 968000

Отправлено: 05:36, 28-10-2016 | #7


Ветеран


Contributor


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

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


Взять из папки 555 три файла и скопировать их во все подпапки папки 968000
Код: Выделить весь код
@Echo Off

Set  "InBox=C:\LOGO\555"
Set "InFile="1.cfg" "2.so" "3.bin""

Set "OutBox=C:\LOGO\new\launch\968000000000"

FOR /F "usebackq delims=" %%d IN (`Dir "%OutBox%" /B /A:D 2^>nul`) DO (
	FOR %%f IN (%InFile%) DO (
		Copy "%InBox%\%%~f" "%OutBox%\%%d\" >nul
	)
)
Взять из папки 555 три файла и скопировать их во все подпапки папки 968000, если они более свежие
Код: Выделить весь код
@Echo Off

Set  "InBox=C:\LOGO\555"
Set "InFile="1.cfg" "2.so" "3.bin""

Set "OutBox=C:\LOGO\new\launch\968000000000"

FOR /F "usebackq delims=" %%d IN (`Dir "%OutBox%" /B /A:D 2^>nul`) DO (
	FOR %%f IN (%InFile%) DO (
		Xcopy "%InBox%\%%~f" "%OutBox%\%%d\" /Y /D >nul
	)
)
Должен заметить, что если файлы 1,2,3 заняты, то занятый файл скопирован и перезаписан не будет.

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Отправлено: 06:21, 28-10-2016 | #8


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


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

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


Изображения
Тип файла: bmp Новый точечный рисунок.bmp
(346.8 Kb, 13 просмотров)

не работает

Отправлено: 17:14, 28-10-2016 | #9


Ветеран


Contributor


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

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


Цитата 55kadi, не верю:
не работает
Вот отладочный вариант, в папке C:\LOGO\555 образуется LOG-файл с именем батника, не сочтите за труд довести его содержимое до меня
Код: Выделить весь код
@Echo Off

Set  "InBox=C:\LOGO\555"
Set "InFile="1.cfg" "2.so" "3.bin""

Set "OutBox=C:\LOGO\new\launch\968000000000"

Dir "%OutBox%" /A:D  >"%InBox%\%~nx0.LOG"
Dir "%InBox%\?.*" /A:-D >>"%InBox%\%~nx0.LOG"

FOR /F "usebackq delims=" %%d IN (`Dir "%OutBox%" /B /A:D 2^>nul`) DO (
	Echo ----- "%OutBox%\%%d\" >>"%InBox%\%~nx0.LOG" 
	FOR %%f IN (%InFile%) DO (
		Echo Copy "%InBox%\%%~f" "%OutBox%\%%d\" >>"%InBox%\%~nx0.LOG"
		Copy "%InBox%\%%~f" "%OutBox%\%%d\" >nul
	)
)
Кстати, а файлы реально называются ="1.cfg" "2.so" "3.bin" или у них иные имена? Если иные, надо честно их указать
Из вашего скриншота следует, что:
или нет подпапок в папке C:\LOGO\new\launch\968000000000
или нет файлов "1.cfg" "2.so" "3.bin" в папке C:\LOGO\555

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 29-10-2016 в 00:27. Причина: Исправление ошибки, найденной alpap


Отправлено: 18:41, 28-10-2016 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - bat файл, резервное копирование litoo Скриптовые языки администрирования Windows 5 20-06-2016 19:03
Любой язык - Копирование через BAT файл ALEX-AS Скриптовые языки администрирования Windows 1 22-05-2014 23:21
CMD/BAT - Параллельное копирование файлов в bat. Dremor Скриптовые языки администрирования Windows 18 12-01-2014 23:06
CMD/BAT - Копирование по FTP .bat Vao Скриптовые языки администрирования Windows 0 17-10-2011 10:29
CMD/BAT - [решено] .bat Копирование с условием TwoThrones Скриптовые языки администрирования Windows 1 09-01-2011 14:51




 
Переход