|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Переместить файлы, в имени которых больше трех цифр. |
|
CMD/BAT - [решено] Переместить файлы, в имени которых больше трех цифр.
|
Новый участник Сообщения: 2 |
Всем привет!
Собственно, задачка описана в теме. Искомый каталог и каталог для перемещения передаются параметрами bat-файлу. И желательно было бы вы перемещаемые файлы вывести на экран. |
|
Отправлено: 17:04, 28-12-2010 |
Ушёл из жизни Сообщения: 6021
|
Профиль | Отправить PM | Цитировать @echo off SetLocal enabledelayedexpansion :: исходная папка Set folder=%~1 :: папка получатель Set out=%~2 For /R "%folder%" %%a In (*.*) Do ( Set name=#%%~na Call :_cntchr "!name!" ocnt For /L %%i In (0,1,9) Do Set name=!name:%%i=! Call :_cntchr "!name!" tcnt Set /A delta=ocnt-tcnt If !delta! GTR 3 Echo %%a& Move "%%a" "%out%\%%~nxa" ) pause :_cntchr Set %2=0 Set tn=%~1 :_loop If Not Defined tn GoTo :EOF Set /A %2+=1 Set tn=!tn:~1! GoTo :_loop |
Отправлено: 10:19, 29-12-2010 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 2
|
Профиль | Отправить PM | Цитировать Все работает, да. Сейчас буду курить код, разбираться)
Gora, спасибо большое! |
Отправлено: 14:00, 29-12-2010 | #3 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать hazardhz, до кучи вариант №2:
@Echo Off If "%~1"=="" Echo Error. Source folder is not specified.&Exit /B 1 If "%~2"=="" Echo Error. Output folder is not specified.&Exit /B 1 For /F "Tokens=*" %%A In ('Dir /B /S /A-D "%~1"^|FindStr /R .*\\[^^^^\\]*[0-9][^^^^\\]*[0-9][^^^^\\]*[0-9][^^^^\\]*[0-9][^^^^\\]*[.].*') Do ( Echo %%A Call :_Func "%%A" "%~1" "%~2" ) GoTo :EOF :_Func Set Source=%~dp1 Call MD "%%Source:%~2\=%~3\%%" 2>nul Call Move /Y %1 "%%Source:%~2=%~3\%%" >nul |
Последний раз редактировалось El Sanchez, 30-12-2010 в 22:20. Отправлено: 17:45, 30-12-2010 | #4 |
Ветеран Сообщения: 900
|
Профиль | Отправить PM | Цитировать Здравствуйте. Напишите, пожалуйста, если это возможно, как реализовать такое при помощи файла *.cmd
1) Для примера, в папке C:\1 есть как файлы формата %y%.%m%.%d%.txt, где %y% - год, %m% - месяц, %d% - день, .txt - расширение файла, так и файлы других форматов: с расширениями, отличными от *.txt и другими названиями. Для примера, в папке C:\1 есть как файлы:так есть и файлы:2) Нужно при запуске файла *.cmd в папке C:\1 найти все файлы, название+расширение которых соответствует пункту 1), т. е. %y%.%m%.%d%.txt и переместить все эти файлы в папку C:\2. Спасибо. |
|
Отправлено: 09:51, 14-05-2011 | #5 |
Ветеран Сообщения: 1758
|
SharkyEXE,
@echo off for /f "tokens=*" %%i in (' dir /b /a "C:\1\*.txt" ^| findstr /b /e "[0-9]*\.[0-9]*\.[0-9]*\.txt" ') do move %%i "C:\2" |
Последний раз редактировалось Foreigner, 14-05-2011 в 12:43. Отправлено: 12:32, 14-05-2011 | #6 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] переместить файлы по папкам согласно списку | shadowbat | Скриптовые языки администрирования Windows | 9 | 17-11-2023 14:51 | |
Мультимедиа - [решено] Проблема с mp3-файлами битрейт которых больше 300 kbps | Zuboklev | Программное обеспечение Windows | 8 | 11-04-2011 10:50 | |
CMD/BAT - [решено] Переместить файлы, содержащие определенное значение, +одноименные к ним. | jahvdet | Скриптовые языки администрирования Windows | 3 | 02-10-2010 17:12 | |
Ошибка - [решено] Не могу переместить AVI файлы через панель инструментов. | kp.Drako | Microsoft Windows 2000/XP | 11 | 12-06-2010 00:36 | |
Загрузка - меню загрузки трех операционных систем с трех HDD | sasa74 | Microsoft Windows 7 | 1 | 13-11-2009 20:34 |
|