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

Перемещение всех файлов из каждой подпапки одной папки в другую папку и их переименование

10.03.2016, 14:52. Показов 4842. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!
Прошу помощи, нужен батник или скрипт, который перемещал бы файлы из C:\folder\date_folder -> C:\all_files .
Есть общая папка в которой создаются папки по дате имея вид 20160310, нужно из этих папок забирать файлы и перемещать в одну общую.
При перемещение необходимо изменить имя файла. Изначально он выглядит так - fixname_date_НаборЦифр.txt (реальный пример rowr12r8_20160310_12314809.txt). Нужно убрать фиксированную часть и убрать _ между датой и набором цифр. и изменить расширение например .xtx.

Так же было бы здорово если папка удалялась если относится к прошлой дате и пустая.

У меня есть vbs скрипт который перемещает и переименовывает файлы, но к сожалению перемещает он из пункта А в пункт Б, не учитывая что пункт А меняется. А при изменение имени он добавляет свою часть, а как убрать кусок я так же не знаю.

Был бы благодарен за любую помощь по данному вопросу!)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.03.2016, 14:52
Ответы с готовыми решениями:

Копирование всех файлов с заданным расширением из одной заданной папки в другую заданную папку
Создайте командный файл, который копирует все файлы с расширением, заданным в качестве первого...

Перемещение файлов в нужные папки и их переименование
Есть 1000 пустых папок, в них нужно переместить определенные jpg файлы из других папок и...

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

Переименование файлов по определённому правилу и их перемещение в папки с соответствующими именами
Здравствуйте. Помогите пожалуйста написать батник. Необходимо переименовать массив файлов по...

4
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
10.03.2016, 17:10 2
Лучший ответ Сообщение было отмечено Knolly как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "in=C:\folder\date_folder"
set "out=C:\all_files"
set "mr=xtx"
for /f "delims=" %%a in ('2^>nul dir /a-d /b /s "%in%"') do for /f "tokens=2,* delims=_" %%b in ('2^>nul dir /a-d /b "%%~dpa"') do (
 2>nul @forfiles /p "%%~dpa" /d -1 /c "cmd /c if /i @isdir equ true rd /s /q @path"
 2>nul dir /b "%%~dpa" | >nul find /v "" || rd /s /q "%%~dpa"
 copy /y "%%a" "%out%\%%~nb%%~nc.%mr%"
)
exit /b
.
1
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 3
11.03.2016, 16:16  [ТС] 3
alpap, спасибо!

А возможно ли чтобы перемещеные файлы больше не трогались? Или удалять старые.. Было бы здорово чтобы к исходному файлу добавлялась буква (R например) и в дальнейшем этот файл не трогался (если возможно).

Процесс следующий: когда эти файлы попадают в папку А и далее перемещаются в папку Б этим скриптом, после 1С забирает файлы из папки Б (с удалением). Проблема заключается в том что после того того как 1С заберет файлы, скрипт опять их туда накидает и 1С заберет их повторно.

Добавлено через 5 часов 56 минут

Windows Batch file
1
2
3
4
5
6
7
8
9
10
@echo off
set "in=C:\folder\date_folder"
set "out=C:\all_files"
set "mr=xtx"
for /f "delims=" %%a in ('2^>nul dir /a-d /b /s "%in%"') do for /f "tokens=2,* delims=_" %%b in ('2^>nul dir /a-d /b "%%~dpa"') do (
 2>nul @forfiles /p "%%~dpa" /d -1 /c "cmd /c if /i @isdir equ true rd /s /q @path"
 2>nul dir /b "%%~dpa" | >nul find /v "" || rd /s /q "%%~dpa"
 copy /y "%%a" "%out%\%%~nb%%~nc.%mr%"
)
exit /b
Я не силен в скриптах, особенно когда доходит до циклов, я изменил copy на move, теперь работает как мне нао с помощью одного дополнительного скрипта. Один вопрос, при перемещение он пишет он видимо за чем то повторно хочет обратиться к файлу который уже перенес, и соответственно пишет что нет такого файла, что он хочет с ним сделать?

Еще раз большое спасибо за скрипт, alpap!!!
0
4334 / 2124 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
11.03.2016, 16:23 4
Цитата Сообщение от Knolly Посмотреть сообщение
Процесс следующий:
Честно? Голова кругом. А меньшим кол-вом папок нельзя обойтись? Почему не исключить папку А из вашего конвеера и накидывать в Б по условию и забирать и удалять оттуда же по условию. Каков полный (именно ПОЛНЫЙ) алгоритм происходящего, а то сейчас в матрешки начнем играть.
0
0 / 0 / 0
Регистрация: 10.03.2016
Сообщений: 3
11.03.2016, 18:35  [ТС] 5
Алгоритм следующий:
1) контрагент через программу скидывает файлы в свою папку, файлы помещаются в подпапки по датам.
2) у нас эта папка через winscp подключена, мы заходим в нее и нам надо забрать новые файлы которые упали, при этом как выяснилось удалять не можем (из того что папка подключена по scp я подумал что можно удалять)
3) забирать файлы надо с интервалом в 1 минуту.
4) после того как мы забрали файл и положили его в свою папку, от туда его забирает 1С и он пропадает из нашей папки

Сейчас вообще непонятно как определить как отслеживать что перемещать а что уже было перемещенно.
0
11.03.2016, 18:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.03.2016, 18:35
Помогаю со студенческими работами здесь

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и...

Организовать перемещение файлов из одной папки в другую в определенное время
Всем доброго времени суток. Создал mdb с функционалом который перемещает (копирует, удаляет) ...

Функция для копирования всех файлов из одной папки в другую
написал функцию, которая копирует все файлы из одной папки в другую, но есть один баг, в папке...

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


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

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