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

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

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

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


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

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


Прошу помощи (как и все здесь присутствующие).
Есть папка с подпапками, условный статичный путь “C:\АЛФАВИТ\”, содержит она подпапки и файлы с различным расширением вида :
Код: Выделить весь код
А\10001,10002,10003-0.jpg
А\10001,10002,10003-1.jpg
Б\20001,20002,20003-0.jpg
Б\20001,20002,20003-1.jpg
В\30001,30002,30003-0.jpg
В\30001,30002,30003-1.jpg
И.т.д.
Необходимо : рекурсивно (пробегаясь по подпапкам), батником, скопировать определенные файлы с помощью параметра в батнике (поиск в имени файла) с разделителем (пусть будет “|”) в определенную папку (заданную так же параметром). Условное исполнение:

Код: Выделить весь код
Script.bat 20002|30003 C:\РЕЗУЛЬТАТЫ\ПМ-00001\
Результат выполнения: в заданной в параметре папке C:\РЕЗУЛЬТАТЫ\ПМ-00001\
Появятся скопированные файлы :
Код: Выделить весь код
20001,20002,20003-0.jpg
20001,20002,20003-1.jpg
30001,30002,30003-0.jpg
30001,30002,30003-1.jpg
Заранее благодарен!

Отправлено: 21:06, 19-08-2014

 

Ветеран


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

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


Цитата miraxgroup:
пусть будет “|” »
Не будет. Этот спецсимвол имеет вполне определённый смысл для интерпретатора команд пакетных файлов.

Код: Выделить весь код
@echo off
setlocal enableextensions enabledelayedexpansion

set sDestFolder=%~1
set sTemplate=%~2

if not defined sDestFolder (
	echo Not defined destination folder.
	call :Usage
	exit /b 1
)

if not defined sTemplate (
	echo Not defined template for find.
	call :Usage
	exit /b 2
)

if not exist "%sDestFolder%\." (
	echo Can't find destination folder [%sDestFolder%].
	exit /b 3
)

:Repeat
for /f "usebackq delims=" %%i in (
	`dir /b /s /a:-d "C:\АЛФАВИТ\*.*" 2^>nul ^| findstr.exe /i /r /c:"%sTemplate%"`
) do >nul copy "%%~i" "%sDestFolder%\"

shift /2
set sTemplate=%~2
if defined sTemplate goto :Repeat

endlocal
exit /b 0

:Usage
	echo Usage: %~0 ^<Destination folder^> ^<Template^> [^<Template^> ...]
	exit /b 0
Вызов пакетного файла — сначала результирующая папка, затем шаблоны для команды «findstr.exe». Для Вашего примера:
Код: Выделить весь код
Script.cmd "C:\РЕЗУЛЬТАТЫ\ПМ-00001" 20002 30003

Отправлено: 00:07, 20-08-2014 | #2



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

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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Поиск и копирование найденных файлов Jans Скриптовые языки администрирования Windows 15 09-04-2022 11:38
CMD/BAT - Поиск и копирование определенных файлов из папок timbird Скриптовые языки администрирования Windows 13 22-02-2014 21:25
CMD/BAT - поиск и копирование файлов по списку-маске martyn_80 Скриптовые языки администрирования Windows 1 24-11-2012 14:47
CMD/BAT - Поиск и копирование файлов idov Скриптовые языки администрирования Windows 0 23-10-2011 23:21
[решено] Поиск файлов в подпапках и их последующее копирование D_Master AutoIt 4 10-02-2009 07:32




 
Переход