Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/23: Рейтинг темы: голосов - 23, средняя оценка - 4.57
tibhar940
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 18
1

Копирование файлов в нужные папки в зависимости от их имён

11.09.2012, 16:49. Просмотров 4306. Ответов 8
Метки нет (Все метки)

Подскажите, пожалуйста. Можно ли реализовать такую функцию?

Есть файлы вида XXX123456789 (цифры разные само собой) YYY123456789 и т.д. Нужно кинуть файлы c XXX в имени в папку XXX, YYY в папку YYY соответственно. Папку желательно создать на месте (внутри папки с этими файлами).

Заранее спасибо.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.09.2012, 16:49
Ответы с готовыми решениями:

Копирование файлов в нужные папки, исходя из имён файлов
подскажите, задача примерно аналогичная в папке множество файлов wav, у всех в начале присутствует...

Копирование содержимого одной папки в другую с переименованием файлов и папок в случае совпадения имён
Добрый день! Необходимо решение следующей задачи: Есть папка OUT , находится к примеру "c:\out",...

Проверка наличия папки и последующее копирование файлов в зависимости от разрядности системы
Доброго времени! Возникла потребность в написании скрипта для копирования расширения...

Копирование TXT-файлов из одной папки и BMP-файлов из другой папки в папку, в которой находится пакетный файл
Доброго времени суток. У кого есть возможность сообразить какой код мне нужет чтобы сделать вот...

Копирование нескольких файлов из локальной папки в две сетевые папки с последующим удалением исходных файлов
Есть практическая задача: нужно накидать батник, который будет в определённое время брать из одной...

8
Dragokas
Эксперт WindowsАвтор FAQ
17065 / 7120 / 861
Регистрация: 25.12.2011
Сообщений: 10,931
Записей в блоге: 16
15.09.2012, 23:01 2
Bash
1
2
3
4
5
6
7
8
9
10
@Echo off
setlocal enabledelayedexpansion
::Имя папки (без кавычек)
set $folder=e:\2
for /f "delims=" %%i in ('dir "%$folder%" /b /a:-d') do (
  set $newf=%%i
  set $newf=!$newf:~0,3!
  if not exist %$folder%\!$newf! md %$folder%\!$newf!
  move /y "%$folder%\%%i" "%$folder%\!$newf!"
)
0
tibhar940
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 18
15.09.2012, 23:19  [ТС] 3
Цитата Сообщение от Dragokas Посмотреть сообщение
Bash
1
2
3
4
5
6
7
8
9
10
@Echo off
setlocal enabledelayedexpansion
::Имя папки (без кавычек)
set $folder=e:\2
for /f "delims=" %%i in ('dir "%$folder%" /b /a:-d') do (
  set $newf=%%i
  set $newf=!$newf:~0,3!
  if not exist %$folder%\!$newf! md %$folder%\!$newf!
  move /y "%$folder%\%%i" "%$folder%\!$newf!"
)
А если к примеру файлы вида XX_YY_BB_1234567 XX_BB_YY_1234566 и т.д. буквенных обозначений ограниченное количество. Порядка 16 штук. Можно ли их как-то задать в батнике и если название файла содержит одно из них - кинуть в нужную папку?
0
Dragokas
Эксперт WindowsАвтор FAQ
17065 / 7120 / 861
Регистрация: 25.12.2011
Сообщений: 10,931
Записей в блоге: 16
16.09.2012, 03:31 4
Все можно. Нужно только знать, чего хочешь.

Компьютер, например, не может догадаться какая там у него

Цитата Сообщение от tibhar940 Посмотреть сообщение
нужная папка
0
16.09.2012, 03:31
tibhar940
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 18
16.09.2012, 15:15  [ТС] 5
Цитата Сообщение от Dragokas Посмотреть сообщение
Все можно. Нужно только знать, чего хочешь.

Компьютер, например, не может догадаться какая там у него
Ну для файлов XX_YY_BB_1234567 папка c:\documents and settings\files\XX_YY_BB, для XX_BB_YY_1234566 c:\documents and settings\files\XX_BB_YY
0
Dragokas
Эксперт WindowsАвтор FAQ
17065 / 7120 / 861
Регистрация: 25.12.2011
Сообщений: 10,931
Записей в блоге: 16
16.09.2012, 21:09 6
В строке 7 поменяйте начальное количество отбираемых символов с 3 до 8.
Или эти файлы у Вас в перемешку? (т.е. нужно ли еще отслеживать символ подчеркивания)
0
tibhar940
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 18
16.09.2012, 21:26  [ТС] 7
Цитата Сообщение от Dragokas Посмотреть сообщение
В строке 7 поменяйте начальное количество отбираемых символов с 3 до 8.
Или эти файлы у Вас в перемешку? (т.е. нужно ли еще отслеживать символ подчеркивания)
Ну файлы в перемешку. В принципе я уже поменял до 8. и до 10 пробовал. Просто какие-то файлы имеют вышеописанный вид, а какие-то из 10 символов ключевых. В принципе меня устроил результат. Но..возник вопрос. А если например файл имеет вид 123XX_YY_ZZ_1234567? Но считать нужно только XX_YY_ZZ ? нужно поменять 0 на 3 в 7ой строке. А если количество цифр в начале названия файла неодинаково? например от 1 до 5 цифр.
Вопрос в том, можно ли запрограммировать считывание конкретной комбинации XX_YY_ZZ?
Спасибо за помощь. Уже достаточно помогли в принципе. Но если бы ответили на эти вопросы было бы замечательно.

З.Ы. - возможно ли переименование папок в цикле "если у папки имя такое-то поменять на такое-то". Я в принципе реализовать на делфях это могу. Но вопрос к командной строке относится.
0
Dragokas
Эксперт WindowsАвтор FAQ
17065 / 7120 / 861
Регистрация: 25.12.2011
Сообщений: 10,931
Записей в блоге: 16
16.09.2012, 22:37 8
Цитата Сообщение от tibhar940 Посмотреть сообщение
возможно ли переименование папок в цикле
Это вроде тянет на новую тему.

Цитата Сообщение от tibhar940 Посмотреть сообщение
Вопрос в том, можно ли запрограммировать считывание конкретной комбинации XX_YY_ZZ?
В общем да. Но нужно для себя прояснить четкий критерий:
допустим программа будет читать:
1) 2 символа перед 1-м знаком _
2) 2 символа перед 2-м знаком _
3) 2 символа после 2-го знака _
А по какому критерию отличить такую комбинацию
123XX_YY_ZZ_1234567
от такой
XXX123456789
?
- отсутствие знаков _ ?
0
tibhar940
0 / 0 / 0
Регистрация: 11.09.2012
Сообщений: 18
17.09.2012, 18:04  [ТС] 9
Цитата Сообщение от Dragokas Посмотреть сообщение
Это вроде тянет на новую тему.


В общем да. Но нужно для себя прояснить четкий критерий:
допустим программа будет читать:
1) 2 символа перед 1-м знаком _
2) 2 символа перед 2-м знаком _
3) 2 символа после 2-го знака _
А по какому критерию отличить такую комбинацию
123XX_YY_ZZ_1234567
от такой
XXX123456789
?
- отсутствие знаков _ ?
Можно ввести такое условие? "Если файл в названии содержит "20111219", то копировать этот файл в папку С:\2" ?
0
17.09.2012, 18:04
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.09.2012, 18:04

Копирование файлов с переименованием в случае совпадения имён копируемых и имеющихся в папке назначения файлов
Доброго времени суток. Убедительная просьба, помогите пожалуйста решить задачу. Существует...

Копирование файлов с переименованием в случае совпадения имён перемещаемых и имеющихся в папке назначения файлов
Добрый день. Помогите создать bat файл. Смысл в чем есть папка загрузки на компьютере с нее файлы и...

Копирование файлов с сохранением имён каталогов
Доброго времени суток. В батниках я полный ноль. Но не взирая на это, постарался самостоятельно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru