![]() |
Добавление имени папки в имя файлов, которые лежат в этой папке
Добрый день, нужна помощь. Написал тут не много, а дальше трабл. Как сделать так чтоб при нажатии несколько раз на бат имя папки в файле не дублировалось, а лишь менялось если имя папки изменилось?
Код:
rem функция для добавления имени папки к имени файла |
sway38, Лучше бы Вы изложили задачу, а не демонстрировали трабл.
У Вас есть путь к папке в переменной %p% Вы ищете все файлы по маске. В переменной %%b получаете полные пути К именам исходных файлов впереди прибавляется имя папки шестого уровня вложенности, в том числе и для файлов, расположенных более глубоко, или пробел, если такого уровня вложенности у файла нет. Смысл задачи в этом случае от меня ускользает Вопросы: 1. Что, те файлы, которые переименовываются, расположены на самом низком уровне вложенности (у Вас он =6)? Или надо рассматривать только файлы на 6 уровне вложенности? 2. В именах папок и непереименованных файлов возможны пробелы? |
задача такая. Есть папка с названием (ХХХХ) в ней файлы и папки(имена этих папок роли не играют) с файлами. Нужно добавить имя папки с названием (ХХХХ) к именам файлов внутри этой папки и файлам внутри папок вложенных в эту папку. Сделать так чтобы при нажатии на батник несколько раз имя папки не добавлялось несколько раз к именам файлов, а менялось только если изменилось имя папки с названием (ХХХХ). Проблема в том что количество вложенных папок везде разное, поэтому 6 уровней вложенности. Объяснил как смог... Вот как на картинке, если меняется BTS38-151GUL26, то батник меняет имя его и во всех вложенных файлах, не дублируя!
![]() |
Код:
@Echo Off |
sway38
допустим вот так значит к именам всех файлов вглубь меняющей имя папки "papkaA" (на данном этапе) будет добавлено имя этой папки через знак нижнего подчеркивания (пример: было "file1.txt" стало "papkaA_file1.txt"). Этот знак вынес в переменную на случай, если он уже присутствует в именах файлов, то использовать его нельзя и надо заменить на другой допустимый в именах, например: "-" Код:
@echo off (кодировка у меня везде 866 и не забываем про "_", перед первым запуском его не должно быть в именах файлов) |
megaloman, Почему то при добавлении имени папки к имени файла получается Имяпапки#Имяфайла. А можно сделать так чтобы не нужно было заходить в батник и менять путь ручками, а просто кинул батник в папку с файлами которые нужно исправить и он сам брал имя папки в которой лежит?
|
alpap, не фунциклирует
|
Цитата:
Код:
@echo off Цитата:
|
вот папка "papka0" с файлами и bat, помещенному в папку
Файл 153068 после 1го запуска Файл 153069 изменил имя папки на "papkaA" Файл 153070 запуск уже в этой папке Файл 153071 |
хмм ну по юзерски))) создал .txt внутри папки где переименовываются файлы, открыл через notepad++, вставил код, 866, save .bat. двойной клик. И ничего не изменилось. Можно прописать для каких типов файлов в папке нужно переименование? .dwg, .xlsx
https://c.radikal.ru/c18/1806/ee/1f6db040fc7b.jpg |
sway38,
Цитата:
Код:
@Echo Off Слегка подправил цикл для надёжности. |
Цитата:
|
Цитата:
тра это имя папки, или кусок имени непереименованного файла? Надо через пробел - извольте. Криво отработает пробел в имени файла - я не виноват
Код:
@Echo Off |
Цитата:
Код:
@echo off |
Цитата:
|
А можно еще в этот батник одну функцию дописать?
Нужно чтобы в папке где лежит батник он находил файл ***** - Параметры.xlsx узнавал его путь и вставлял его в первую строку файла config.cfg, лежащего здесь же в папке. https://b.radikal.ru/b25/1806/5f/560e3771913e.jpg |
Время: 21:07. |
Время: 21:07.
© OSzone.net 2001-