|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Перенос из заданных директорий в новую файлы, содержащие заданное слово |
|
|
CMD/BAT - [решено] Перенос из заданных директорий в новую файлы, содержащие заданное слово
|
Новый участник Сообщения: 9 |
Как написать .bat/.cmd файл для переноса из заданных директорий в новую файлы, содержащие заданное слово?
Кое-как начал разбираться - получилось что-то следующее (до это не имел со скриптами дел): setlocal enableextensions setlocal enabledelayedexpansion for /f %%a in ('dir "путь\*паттернкакойнить*" /A:-D /B ') do ( move \Y "путь\"%%a "путь2\"%%a ) |
|
Отправлено: 15:07, 12-05-2010 |
Пользователь Сообщения: 56
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:43, 12-05-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата Lil Crazy:
move "путь1\*слово*.*" "путь2\" |
|
------- Отправлено: 18:35, 12-05-2010 | #3 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата megaloman:
|
|
Отправлено: 19:25, 12-05-2010 | #4 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать |
|
Отправлено: 05:04, 13-05-2010 | #5 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать Цитата amel27:
For /F "Delims=" %%i In ('FindStr /SMC:"%TEXT%" "%DIR1%\*" "%ещё n-количество директорий%\*"') Do Move "%%i" "%DIR2%" @Echo Off Set TEXT=SLOVO Set DIR1=C:\TEST1 Set DIR2=C:\TEST2 Set DIR3=C:\TEST3 For /F "Delims=" %%i In ('FindStr /SMC:"%TEXT%" "%DIR1%\*" "%DIR2%\*"') Do Move "%%i" "%DIR3%" @pause И я так понимаю, что сделать отображение перемещаемых файлов (именно названия файлов, то есть какие файлы перемещены) довольно проблематично? |
|
Отправлено: 14:39, 13-05-2010 | #6 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Lil Crazy:
@Echo Off Set TEXT=SLOVO Set DIR1=C:\TEST1 Set DIR2=C:\TEST2 Set DIR3=C:\TEST3 For /F "Delims=" %%i In ('FindStr /SMC:"%TEXT%" "%DIR1%\*"^&FindStr /SMC:"%TEXT%" "%DIR2%\*"') Do Move "%%i" "%DIR3%" @pause Цитата Lil Crazy:
@Echo Off :TXT Set /P $TXT="Что ищем: " If "%$TXT%"=="" GoTo TXT :NUM Set /P $NUM="Количество папок: " Set $IDX=1& Set /A $NUM+=0 If %$NUM% EQU 0 GoTo NUM :DIR Set /P $_%$IDX%="Путь к папке %$IDX%: " Call Set $T=%%$_%$IDX%%% If Exist %$T% Set /A $IDX+=1 If %$IDX% LEQ %$NUM% GoTo DIR Set $MOVE=C:\TEST& Echo. For /F "Tokens=1* Delims==" %%a In ('Set $_') Do For /F "Delims=" %%i In ( 'FindStr /SMC:"%$TXT%" "%%b\*"') Do Move "%%i" "%$MOVE%"& Echo "%%i" |
||
Отправлено: 17:41, 13-05-2010 | #7 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать @Echo Off :TXT Set /P $TXT="Input word for search: " If "%$TXT%"=="" GoTo TXT :NUM Set /P $NUM="Number of dirs: " Set $IDX=1& Set /A $NUM+=0 If %$NUM% EQU 0 GoTo NUM :DIR Set /P $_%$IDX%="Path to folder %$IDX% for search: " Call Set $T=%%$_%$IDX%%% If Exist %$T% Set /A $IDX+=1 If %$IDX% LEQ %$NUM% GoTo DIR :MOVE Set /P $MOVE="Input destinantion dir: " If "%$MOVE%"=="" GoTo MOVE For /F "Tokens=1* Delims==" %%a In ('Set $_') Do For /F "Delims=" %%i In ( 'FindStr /SMC:"%$TXT%" "%%b\*"') Do Move "%%i" "%$MOVE%"& Echo "%%i" @pause |
Отправлено: 20:00, 13-05-2010 | #8 |
Googler Сообщения: 3665
|
Профиль | Отправить PM | Цитировать Цитата Lil Crazy:
вариант через временный файл для поиска в 3-х кодировках (DOS/WIN/UTF8): @Echo Off :TXT Set /P $TXT="Input word for search: " If "%$TXT%"=="" GoTo TXT Echo %$TXT%>"%~dpn0.tmp" CHCP 1251 |>>"%~dpn0.tmp" Echo %$TXT%&CHCP 866 >Nul CHCP 65001|>>"%~dpn0.tmp" Echo %$TXT%&CHCP 866 >Nul :NUM Set /P $NUM="Number of dirs: " Set $IDX=1& Set /A $NUM+=0 If %$NUM% EQU 0 GoTo NUM :DIR Set /P $_%$IDX%="Path to folder %$IDX% for search: " Call Set $T=%%$_%$IDX%%% If Exist %$T% Set /A $IDX+=1 If %$IDX% LEQ %$NUM% GoTo DIR :MOVE Set /P $MOVE="Input destinantion dir: " If "%$MOVE%"=="" GoTo MOVE For /F "Tokens=1* Delims==" %%a In ('Set $_') Do For /F "Delims=" %%i In ( 'FindStr /SMG:"%~dpn0.tmp" "%%b\*"') Do Move "%%i" "%$MOVE%" >Nul& Echo "%%i" |
|
Отправлено: 06:09, 14-05-2010 | #9 |
Новый участник Сообщения: 9
|
Профиль | Отправить PM | Цитировать amel27, спасибо вам огромное! Ещё один вопрос хотел задать только: как сделать чтобы бы в консоли выводились перемещаемые файлы и сохранить их в создаваемый автоматически текстовый файл как лог-файл, то есть:
Цитата:
@Echo Off :TXT Set /P $TXT="Input word for search: " If "%$TXT%"=="" GoTo TXT Echo %$TXT%>"%~dpn0.tmp" CHCP 1251 |>>"%~dpn0.tmp" Echo %$TXT%&CHCP 866 >Nul CHCP 65001|>>"%~dpn0.tmp" Echo %$TXT%&CHCP 866 >Nul :NUM Set /P $NUM="Number of folders: " Set $IDX=1& Set /A $NUM+=0 If %$NUM% EQU 0 GoTo NUM :DIR Set /P $_%$IDX%="Path to folder %$IDX% for search: " Call Set $T=%%$_%$IDX%%% If Exist %$T% Set /A $IDX+=1 If %$IDX% LEQ %$NUM% GoTo DIR :MOVE Set /P $MOVE="Input destinantion folder: " If "%$MOVE%"=="" GoTo MOVE If not Exist "%$MOVE%" MkDir "%$MOVE%" For /F "Tokens=1* Delims==" %%a In ('Set $_') Do For /F "Delims=" %%i In ( 'FindStr /SMG:"%~dpn0.tmp" "%%b\*"') Do Move "%%i" "%$MOVE%" >Nul& Echo "%%i" Del "%~dpn0.tmp" @pause |
|
Последний раз редактировалось Lil Crazy, 14-05-2010 в 15:39. Отправлено: 13:44, 14-05-2010 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Вывод заданных параметров | storm2005 | Скриптовые языки администрирования Windows | 1 | 08-01-2010 10:34 | |
[решено] Перенос установленных программ со старой системы на новую... | CnyH9I | Хочу все знать | 5 | 28-12-2009 17:02 | |
Все знают про обьеденение строк ('слово'&'еще слово'), а есть ли способ исключениеня? | tweakos | AutoIt | 3 | 15-07-2009 09:52 | |
Прочие - Программа (скрипт) удаление из заданного каталога заданных файлов | __sa__nya | Программное обеспечение Windows | 1 | 20-11-2008 19:02 | |
Перенос контроллера домена со старой системы на новую | Ment69 | Microsoft Windows NT/2000/2003 | 1 | 01-09-2006 06:56 |
|