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

Автоматический поиск и замена файлов по имени

12.12.2016, 04:40. Просмотров 1147. Ответов 2
Метки нет (Все метки)

Существует 2 сложные системы папок и файлов.
В конечном счете в них лежат файлы с одинаковым именем и расширением. Но они расположены в разных директориях.

Нужно перенести файлы с заменой с одной стороны (из одной кучи) в другую (отсортированную по группам), используя только имя файла.
0
Миниатюры
Автоматический поиск и замена файлов по имени  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.12.2016, 04:40
Ответы с готовыми решениями:

Поиск и копирование файлов по имени
Всем привет! Прошу совета в написании скрипта. В общем лежат в каталоге куча...

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

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

Поиск файлов по имени и добавление описания в определенную строку
Всех с Новым Годом!!! Нужна помощь в таком вопросе. Есть файлик 1.txt в ...

Поиск файлов по введенной с клавиатуры маски имени с последующим их копированием
Помогите написать bat-файл, с поиском файлов такого вида *xxx*, (rt555.zip или...

2
Garry Galler
1600 / 1274 / 479
Регистрация: 28.10.2013
Сообщений: 3,246
12.12.2016, 14:04 2
Лучший ответ Сообщение было отмечено wolf7808 как решение

Решение

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@echo off
setlocal enabledelayedexpansion
set "source=d:\out"
set "dest=d:\out1"
:: индексируем содержимое папки назначения
for /f "delims=" %%i in ('dir /a-d /b/s %dest%') do (
  set "file=%%~nxi"
  set "a[!file!]=%%~dpi"
)
 
for /f "delims=" %%i in ('dir /a-d /b/s %source%') do (
  if defined a[%%~nxi] (
    rem  перемещаем файл согласно составленному индексу
    echo move "%%i" "!a[%%~nxi]!%%~nxi" 
  ) else (
    rem если индекса нет - то файл либо перемещаем в корень папки назначения
    rem  move "%%i" "%dest%\%%~nxi
    rem либо ничего не делаем
    echo Для файла "%%i" отсутствует папка назначения
  )
)
PS: Для реального перемещения нужно убрать echo перед move.
Количество файлов для перемещения в данном случае ограничено максимальным числом переменных в cmd.
1
volodin661
1865 / 923 / 154
Регистрация: 10.12.2013
Сообщений: 3,097
12.12.2016, 14:15 3
Цитата Сообщение от Garry Galler Посмотреть сообщение
PS: Для реального перемещения нужно убрать echo перед move.
для реального перемещения надо перенаправить вывод команды echo в файл >>doit.bat
и после визуальной проверки содержимого выполнить его.

кроме того неплохо бы одновременно сгенерить и файл undo.bat для отмены перемещений ежели чо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2016, 14:15

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

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

Поиск и замена файлов из папки
Добрый день Подскажите как написать bat который будет выполнять следующие: 1....


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

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

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