Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/18: Рейтинг темы: голосов - 18, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 2
1

Распределение файлов из папки по части имени файла в папки, содержащие файлы с похожим именем (квитовка)

25.12.2015, 14:45. Показов 3535. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Искал по форуму, но мне не удалось найти похожее решение.

К примеру имеется каталог K:\365P\notdefined. В нем находятся файлы, с именами KWTFCB*XXXXXX.TXT, KWTFCB*YYYYYY.TXT и т.д., где XXXXXX, YYYYYY - это произвольные числа, например 030929, 024714 и т.д.

Общая черта всех этих файлов - "KWTFCB" в начале имени файла.
Имеется структура каталогов, например "K:\365P\11-12-2015\1" в которых есть файлы, содержащие "*XXXXXX.TXT", "*YYYYYY.TXT" и т.д.

Стоит задача написать bat-файл, который рассортирует файлы из "K:\365P\notdefined" в каталоги, в которых будут найдены схожие файлы.

Пример:

K:\365P\notdefined\KWTFCB_PB1_ZNO14525663_770520151223_030929.TXT нужно поместить в папку K:\365P\24-12-2015\1, содержащую файл ZNO14525663_770520151223_030929.txt

Каким образом можно реализовать подобное сравнение файлов по маске, чтобы в папку, содержащую файлы, с заданной маской были добавлены файлы с заданной маской из папки назначения.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.12.2015, 14:45
Ответы с готовыми решениями:

Найти папки с заданным именем, удалить старые файлы и пустые папки
добрый день помогите написать маленький скриптик 1. найти папки с именем "папка обмена" в...

Вирус скрывает папки и создает кучу файлов VBS с именем папки
По локальной сети распространился вирус, который постоянно скрывает папки, создавая файлы с...

Папки, количество файлов по части имени файлов
Доброго времени суток. Помогите пожалуйста можно ли реализовать подобное с помощью bat файла...

Создание папки по части имени файла
Помогите сделать форму. Должно получиться: Выбираем файл (в моем случае это .pdf), название...

4
3460 / 1998 / 635
Регистрация: 26.02.2014
Сообщений: 1,457
25.12.2015, 17:59 2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
                                   :
                                  :*:
                                   :
                                  :::
                                 :":":
                                :":::":
                               @echo off
                             :":::::::::":
                            :":::::::::::":
                           :":::::::::::::":
                         :"::::::::::::::::":
                        :"::::::::::::::::::":
                       :"::::::::::::::::::::":
                      set "destination=K:\365P\*"
                    set "source=K:\365P\notdefined"
                   :::::::::::::::::::::::::::::::::
                  2>nul cmd/v/c for /f delims^^= %%i^
                 in ('dir/a-d/b/s "%destination%"^^^|^
                findstr/ilvc:"%source%\\"') do @set x=^
               %%~ni^& move /y "%source%\*!x:~-6!%%~xi"^
                                "%%~dpi"
                                 ::::::
                                 exit/b
                                 ::::::
3
vavun
25.12.2015, 18:06
  #3
0
0 / 0 / 0
Регистрация: 25.12.2015
Сообщений: 2
28.12.2015, 11:57  [ТС] 4
Добрый день!
Поздравляю всех с наступающим Новым Годом!

Спасибо большое за красивое решение
Правда оно не работает...
Не могу понять почему.

Я перенес код, убрал "^" там, где он нужен для переноса строки.
Код выглядит так:

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
@ECHO off
setlocal enabledelayedexpansion
CHCP 1251
CLS
 
set "destination=K:\365P-test\*"
set "source=K:\notdefined"
 
 
PAUSE
:::::::::::::::::::::::::::::::::
    2>nul cmd /v/c for /f delims^^= %%i in ('dir /a-d /b /s "%destination%" | findstr /ilvc:"%source%"') do @set x=%%~ni move /y "%source%\*!x:~-6!%%~xi" "%%~dpi"
    PAUSE
exit/b
Выдается следующая ошибка:

Для продолжения нажмите любую клавишу . . .
FINDSTR: Не удается открыть do
FINDSTR: Не удается открыть @set
FINDSTR: Не удается открыть x=%~ni
FINDSTR: Не удается открыть move
FINDSTR: Не удается открыть /y
FINDSTR: Не удается открыть K:\notdefined\*~-6%~xi
FINDSTR: Не удается открыть %~dpi
Для продолжения нажмите любую клавишу . . .



Если можно, подскажите, пожалуйста, что я исправил неверно, может где-то добавил ненужный пробел или стер какой-то символ, и, если не затруднит, распишите что делает каждый элемент скрипта..
0
0 / 0 / 0
Регистрация: 27.12.2015
Сообщений: 1
02.01.2016, 14:34 5
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal enabledelayedexpansion;
set "A=K:\365P\notdefined"
set "B=K:\365P"
 
rem перебираем все файлы с расширением *.txt в каталоге A и всех его подкаталогах
for /R %B% %%I in (*.txt) do (
    rem извлекаем имя файла
    set f=%%~nI
    rem копируем из A в B соответствующий файл
    copy %A%kwtf*!f:~-6!.txt %%~dpI
)
0
02.01.2016, 14:34
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.01.2016, 14:34
Помогаю со студенческими работами здесь

Найти папки по части имени и создать список находящихся в них файлов
Здравствуйте! Я новичок, сам не смог разобраться. Помогите , пожалуйста! На разных дисках есть...

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

Как реализовать распределение файлов по папкам исходя из части имени файла?
Доброго времени суток, друзья! Есть папка в папке 200 - 300 файлов (И такие буду приходить...

Добавление имени папки, в которой находятся файлы, перед именами файлов в них
Здравствуйте. Подскажите, пожалуйста, как сделать так, чтобы перед именами файлов было имя папки,...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru