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

Проверка имени по адресу. Копирование с переименованием. Архивирование ненужных файлов

02.01.2020, 14:31. Показов 2037. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый день всем! я каждый день сталкиваюсь с большой рутинной операцией проверить много файлов на соответствие названий,заархивировать ненужные документы, скопировать из одной папки в другую и поменять имя и меня это в конец достало, я на этом форуме недавно и научился пока только копировать), что спасло мне немало седых волос.
Помогите пожалуйста кто чем сможет) задачи у меня специфические.
Ситуация такая - в сетевом файлохранилище сохраняются фалы и сохраняются как попало (могут указать имя с ошибкой), и есть очень высокие требования к именования документов например "test1_wip_ar_b12_r19.ifc". Есть стабильно существующие никогда не меняющие свое имя папки (откуда в теории можно присваивать имена документам). "C:\bim_cde\02_project\test1\02_wip\09_a r\B12" - к примеру путь до документа (указанного как пример), но в директории
первая и наибольшая проблема в директории 02_PROJECT\\ - много поддиректорий. пример: test1, test2, test3.
каждая из которых имеет разный контент но одинаковую структуру папок 02_wip\\ много поддиректорий внутри. (в принципе они все статичны и я могу их все описать при необходимости)

часть первая) возможно ли запуску скрипта проверить правильно ли названы файлы и те что названы не правильно переименовать в соответствии с той папкой где они лежат. это касается всех существующих и теоретически появляющихся "test1\02_wip" "test2\02_wip" и т.д.

часть вторая) ежедневно рядом с документном "test1_wip_ar_b12_r19.ifc" появляется огромное количество файлов - формата "test1_wip_ar_b12_r19.0001.ifc", где число может быть абсолютно любым по принципу n+1 то есть последний файл который будет найден в данной директории и порядковый номер + "0001" - возможно ли анализировать все директории "test1\02_wip" "test2\02_wip" итд и находить там самый старший документ и его игнорировать а все остальные архивировать с удалением документов исходников (это временные файлы) сам архив нужно положить в туже папку где лежали его исходники.
у меня получилось архивировать все файлы а сортировку номера и тем более сортировку нужных мне файлов сделать не удалось( но уже я работаю быстрее).

часть третья) самая большая боль!
Каждый день мне нужно скопировать файл из одного места
из пример"C:\bim_cde\02_project\test1\02_wip\09_ar\B12\test1_wip_ar_b12_r19.ifc".
и вставить в пример"C:\bim_cde\02_project\test1\03_sh\09_ar\B12\test1_sh_ar_b12_r19.ifc".
ничего не меняется просто зайти ctrl+c ctrl+v и поменять wip на sh и таких папок сотни а если в папке уже был файл - существуещему файлу - дописать дату его создания (т.е прошлый день) пример -
"C:\bim_cde\02_project\test1\03_sh\09_ar \B12\test1_sh_ar_b12_r19_01_01_2020.ifc" , "C:\bim_cde\02_project\test1\03_sh\09_ar \B12\test1_sh_ar_b12_r19.ifc" - и рядом положить копию из папки wip.
возможно ли это сделать скриптом полностью или хотя бы частично

возможно ли все три части объединить в один скрипт.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.01.2020, 14:31
Ответы с готовыми решениями:

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

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

Копирование с переименованием файлов
Необходимо в определенной папке найти файлы с именем avpki.log. Затем необходимо скопировать данные файлы в папку с именем компьютера. С...

4
0 / 0 / 0
Регистрация: 23.12.2019
Сообщений: 3
05.01.2020, 16:51  [ТС]
Есть небольшой прогресс в плане поиска хотя-бы частично подходящего кода
код Копирование файлов с переименованием в случае совпадения имён перемещаемых и имеющихся в папке назначения файлов был взят из темы и переделан "по способностям"из серии как смог. Большинство предложенных на форуме решений копирует только файлы из папки берет еще и содержащиеся в ней подкаталоги а также файлы находящиеся внутри каждой папки (что частично нужно для моей задачи). Мне нужно было чтобы файлы находящиеся внутри папки "03_shared" - приобретали суффикс в виде даты времени в том случае если туда будет копироваться файл из папки "02_wip" - его имя и содержимое должно оставаться неизменным.
Возможно это решается более элегантными способами на правильность решения я не претендую но вдруг кому пригодиться.
Осталось придумать как переименовать все скопированные файлы содержащие слово "_WIP_" в слово "_SH_"

Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
@echo on
setlocal enabledelayedexpansion
chcp 1251>nul
set "d1=C:\Users\User\Desktop\Test\Folder1\02_WIP"
set "d2=C:\Users\User\Desktop\Test\Folder1\03_SHARED"
set "stime=%time:~,8%"
for /f "delims=" %%a in ('dir /a-d/b/s "%d1%"') do set "d=%%a"& call :l "%%a" "%%d:%d1%=%d2%%%"
pause& exit
 
:l
 2>nul md "%~dp2"
 if not exist "%~2" (>nul copy "%~1" "%~2") else (>nul copy "%~2" "%~dp2%~n1_%date%_%stime::=.%%~x1")
 :l
 2>nul md "%~dp2"
 if not exist "%~2" (>nul copy "%~1" "%~2") else (>nul copy "%~1" "%~2")
 
exit /b
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
05.01.2020, 19:48
Цитата Сообщение от iCastor23 Посмотреть сообщение
внутри папки "03_shared" - приобретали суффикс в виде
запуск, вероятно, через планировщик (чтобы выставить диапазон) на когда появится файл в папке
Windows Batch file
1
2
3
4
5
6
@echo off
set "d=03_shared"
set "f=02_wip.txt"
 
if exist "%d%\%f%" for /f "delims=" %%a in ('dir /a-d/b "%d%"^|find /v "%f%"') do ren "%d%\%%a" "%%~na_%date%_%time::=-%%%~xa"
pause
--------------------
Цитата Сообщение от iCastor23 Посмотреть сообщение
переименовать ... файлы содержащие слово "_WIP_" в слово "_SH_"
Windows Batch file
1
2
3
4
5
@echo off
set "d=Papka"
 
for /f "delims=" %%a in ('dir /a-d/b "%d%\*_WIP_*"') do set "name=%%a"& call ren "%d%\%%a" "%%name:WIP=SH%%"
pause
1
0 / 0 / 0
Регистрация: 23.12.2019
Сообщений: 3
05.01.2020, 22:57  [ТС]
alpap, благодарю за помощь!

Файлы переименовываются, но при указании конкретной папки

Windows Batch file
1
2
3
4
@echo off
set "d=Papka"
for /f "delims=" %%a in ('dir /a-d/b "%d%\*_WIP_*"') do set "name=%%a"& call ren "%d%\%%a" "%%name:WIP=SH%%"
pause
не могли бы вы подсказать как сделать чтобы скрипт видел не только файлы в корневой папке но и во вложениях.
из поиска по форуму я понял что надо исправлять частично тут, но видимо где-то еще..
"dir /a-d/b"
"dir /a-d/b/s" - я логически понимаю что "s" должен позволить смотреть мне в подкаталоги, но всегда когда я применяю этот ключ в работающих скриптах (которые могут смотреть только на файлы внутри себя), эти скрипты становятся больше не работающими (мне выдается предупреждение о нарушенном синтаксисе/либо вообще ничего не происходит.
или там должен идти цикл условий если мы смотрим в подкаталоги.
Подскажите пожалуйста алгоритм на простом примере что необходимо делать для работы с вложенными подкаталогами и фалами в них
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
06.01.2020, 02:16
Лучший ответ Сообщение было отмечено iCastor23 как решение

Решение

Цитата Сообщение от iCastor23 Посмотреть сообщение
но и во вложениях
Windows Batch file
1
2
3
4
@echo off
set "d=Papka"
for /f "delims=" %%a in ('dir /a-d/b/s "%d%\*_WIP_*"') do set "name=%%~nxa"& call ren "%%a" "%%name:WIP=SH%%"
pause
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.01.2020, 02:16
Помогаю со студенческими работами здесь

Копирование с переименованием и заменой файлов в каталоге назначения
Господа, добрый день. Прошу помочь в решении задачки, что то не получается её победить :( Необходимо произвести копирование файлов из...

Копирование и архивирование файлов
Коллеги прошу Вашей помощи, Начальство имеет папку (например \\*.*.*.*\xml\) В ней лежат файлы формата *.xml Помогите сделать...

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

Копирование файлов с переименованием в случае совпадения имён перемещаемых с удалением копируемых в начальной папке
Добрый день. это продолжение (улучшение скрипта полученного) в теме - https://www.cyberforum.ru/cmd-bat/thread2141807.html @echo off ...

Копирование: Ввод имени папки и копирование из нее файлов
Доброго времени суток! Реально ли реализовать подобное с помощью bat ? Знаю, что можно создать папку с именем, которое можно задать. ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru