CMD/BAT - [решено] Копирование папок и файлов по маскам

Аватара пользователя
dorosa

CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение dorosa »

Поиском не нашел ни чего похожего, а у самого познаний не хватает.



Задача из одной папки "%~dp0SP1rc2" в другую папку "%~dp0LANG"

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

Маски по которым нужно скопировать *ru-ru* и *en-us*
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение amel27 »

Код:

Код: Выделить всё

xcopy /q/s/y/r/h "%~dp0SP1rc2\*ru-ru*" "%~dp0LANG\"
xcopy /q/s/y/r/h "%~dp0SP1rc2\*en-us*" "%~dp0LANG\"
Аватара пользователя
dorosa

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение dorosa »

Добрый день у меня тоже очень похожая проблема,у меня в каталоге создаються подкаталоги с именами текущей даты и времени такого типа 28-01-11 13,где 28-01-11 -это текущая дата,а 13 это время,тоесть почасово добавляеться к каждой папке.Вопрос как можно копировать все подкаталоги за сегодняшние сутки тоесть как указать скрипту делать выборку по сегодняшней дате и копировать в другую директорию ? Спасибо за ответ!!!
Аватара пользователя
dorosa

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение dorosa »

Цитата dorosa:



нужно, чтобы копировались и папки *ru-ru* и *en-us*
CMD/BAT - [решено] Копирование папок и файлов по маскам




добавить обработку папок:



Код:

Код: Выделить всё

@echo off
SETLOCAL EnableDelayedExpansion
for /f "delims=" %%a in ('dir /b/s/ad "%~dp0SP1rc2\*ru-ru*" "%~dp0SP1rc2\*en-us*"') do (set "$a=%%a"
md "!$a:%~dp0SP1rc2\=%~dp0LANG\!")2>nul
xcopy /q/s/y/r/h "%~dp0SP1rc2\*ru-ru*" "%~dp0LANG\"
xcopy /q/s/y/r/h "%~dp0SP1rc2\*en-us*" "%~dp0LANG\"
Аватара пользователя
amel27

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение amel27 »

Цитата amel27:



добавить обработку папок:
CMD/BAT - [решено] Копирование папок и файлов по маскам




Получается тоже самое. Папки с *ru-ru* и *en-us* не копируются.
Аватара пользователя
dorosa

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение dorosa »

А так?



Код:

Код: Выделить всё

SETLOCAL EnableDelayedExpansion
for /f %%i in ('dir /b/s/ad "%~dp0SP1rc2\" ^| findstr /i ".*ru-ru.* .*en-us.*"') do (
   set "d=%%i"
   xcopy /q/s/y/r/h "!d!" "!d:%~dp0SP1rc2\=%~dp0LANG\!\"
   )
xcopy /q/s/y/r/h "%~dp0SP1rc2\*ru-ru*" "%~dp0LANG\"
xcopy /q/s/y/r/h "%~dp0SP1rc2\*en-us*" "%~dp0LANG\"
Аватара пользователя
dorosa

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение dorosa »

У меня похожая ситуация, но немножко с другим условием - может кому-то, тоже пригодится...

Есть, к примеру, папка D:\my_base в которой находятся файлы вида AB_XXX.reg - ZW_XXX.reg - они всегда одного формата, но первые два символа постоянно меняются. Мне необходимо, в папке C:\ создать папку с именем каждого файла и соответственно, каждый файл копировать в папку с его(!) именем. Есть батник, вида:


Цитата:



@echo off

setlocal enableextensions enabledelayedexpansion

set MYPATH=d:\my_base\

set SOURSE=??_ХХХ.reg

for /r %MYPATH% %%i in (%SOURSE%) do md %%~Ni && echo %%~Ni >> log.log

for /r %MYPATH% %%i in (%SOURSE%) do copy %MYPATH%\??_ХХХ.reg %%~Ni



Папки создает красиво, но при этом, в каждую папку копируются ВСЕ файлы из D:\my_base, и потом приходится удалять ненужные! Как выполнять сравнение имени файла с именем папки, в которую он копируется? Чувствую, что есть хитрый способ....
Аватара пользователя
Smith_Wesson

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение Smith_Wesson »

Цитата Smith_Wesson:



Папки создает красиво, но при этом, в каждую папку копируются ВСЕ файлы из D:\my_base, и потом приходится удалять ненужные! Как выполнять сравнение имени файла с именем папки, в которую он копируется? Чувствую, что есть хитрый способ....
CMD/BAT - [решено] Копирование папок и файлов по маскам






Код:

Код: Выделить всё

@echo off
set "MYPATH=z:\my_base\"
set "SOURSE=*.reg"
for /f "tokens=*" %%i in ('dir /b/s/a-d "%MYPATH%%SOURSE%" ^| findstr /e/i "\\.._XXX\.reg"') do xcopy /r/q/i/y "%%i" "z:\%%~ni\"
Аватара пользователя
SendMessage

Re: CMD/BAT - [решено] Копирование папок и файлов по маскам

Сообщение SendMessage »

SendMessage, - спасибо тебе, Добрый человек! Очень выручил!

...я правда, забыл добавить, что после этой операции, в конечных папках, и нужно паковать в архивчики, с текущей датой.

Вышел из положения такой строчкой:


Цитата:



FORFILES /P %MYPATH% /S /M *.reg /C "cmd /c icomp @file %date:~6,4%_%date:~3,2%_%date:~0,2%.z -h"



Всё работает!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»