Страницы: 1
RSS
Изменение имен находящихся в папке файлов на имена, указанные в столбце книги Excel
 

Здравствуйте.

Подскажите пожалуйста, как массово изменить имена файлов, ссылки на путь к которым находится в столбце A, на имена, которые указаны в столбце B? Таким образом, чтобы, например, файл под именем «1», находящийся в папке «Сертификаты», изменил название на «ольга, сертификат 2». И далее ниже по диапазону A1:B4, указанному в Примере.

 
Переименование, циклом по ячейкам пройтись
 
Olga H., можно формулой в соседнем столбце сформировать команды переименования
Код
="ren "&A1&" """&B1&".pdf"""
, скопировать этот столбец, вставить в Блокнот, сохранить как .BAT в любое место и запустить.
 
Казанский,

сформировала вашей формулой в соседнем столбце (С) команды переименования.
скопировала этот столбец (С) в Блокнот.
сохранила файл в Блокноте как Y.BAT
вложила файл Y.BAT в папку с файлами pdf, которые хочу переименовать.
... далее не знаю что делать, подскажите пожалуйста как запустить.  
 
запустить от имени администратора)  
 
Казанский,
запустила в папке файл Y.BAT от имени администратора, вышла надпись "Разрешить следующей программе внести изменения на этом компьютере", нажала "Да", но переименования файлов не происходит. Подскажите пожалуйста, что сделать, чтобы произошло переименование файлов.  
 
Olga H.,
1. совет PDO не стоит воспринимать серьезно.
2. точно ли сохранен файл как BAT.Обычно блокнот, хоть и показывает что вы там дали такое имя, но сохраняет как txt  и не получился ли к вас Y.BAT.TXT
3. можно просто скопировать то что получилось в результате формул, открыть командную строку WIN +R,cmd, ENTER. Вставить туда скопированное и снова ENTER.
По вопросам из тем форума, личку не читаю.
 
БМВ,
2)файл сохранился как BAT

Но всё равно, когда его запускаю, ничего не происходит.

3) скопировала со столбца C книги Excel то, что получилось в результате срабатывания формулы, открыла командную строку WIN +R,cmd, ENTER. Вставила туда скопированное, нажала ENTER, и выходит надпись "_" не является внутренней или внешней командой, используемой программой или пакетным файлом".  
Изменено: Olga H. - 21.04.2019 08:37:55
 
Казанский, БМВ, создал файлы пдф и повторил все что в теме. ни сработал ни бат, ни командная строка  
 
Olga H., я кажется понял: сохранять .bat надо в кодировке MS-DOS. Если ваш Блокнот этого не умеет, сохраняйте через Word или WordPad (у меня в WinXP так). Хотя с учетом отличного предложения БМВ сохранять даже не нужно, при вставке в окно CMD кодировка получается правильная.
Если через CMD никак не получается - ищите/пишите/ждите макрос.

artyrH, если путь к файлу содержит пробел, его надо взять в кавычки. Для пути к исходному файлу я этого не сделал, т.к. пробела там не было. Более универсальная формула
Код
="ren """&A1&""" """&B1&".pdf"""
Изменено: Казанский - 21.04.2019 09:29:56
 
Казанский, спасибо. заработало
Olga H.,  попробуйте добавить строку chcp 1251  .   получится как то так
Код
chcp 1251
ren "C:\Новая папка\a.pdf" "ольга, сертификат 2.pdf"
ren "C:\Новая папка\b.pdf" "алена, сертфикат 3.pdf"
ren "C:\Новая папка\c.pdf" "виктория, сертификат 6.pdf"
ren "C:\Новая папка\d.pdf" "татьяна, сертификат 1.pdf"
ren "C:\Новая папка\e.pdf" "ольга, сертификат 3.pdf"
ren "C:\Новая папка\g.pdf" "алена, сертфикат 4.pdf"
ren "C:\Новая папка\h.pdf" "виктория, сертификат 7.pdf"
ren "C:\Новая папка\f.pdf" "татьяна, сертификат 2.pdf"

pause
 
вариант с помощью notepad++ : копируем написанный код из Excel, открываем notepad++, Меню "Кодировки" -> "Кодировки" -> "Кириллица" -> "OEM-866", вставляем, ранее скопированный код. Сохраняем файл как .bat. Теперь можно пользоваться и тестировать.
код будет кривой, но работающий. вернее не кривой. просто вместо кириллицы будут крякозябры
 
Казанский,
напишите пожалуйста:
1)необходимо скопировать для последующего сохранения в Word, значения, полученные в результате срабатывания формулы?
2)какой тип файла надо выбрать при сохранении в Word файла под именем Y.BAT ?
 
artyrH, Казанский,

Спасибо,  вариант artyrH с notepad++ в сообщении №12 и формула от Казанского в сообщении № 10 сработали.

1)протянула вниз формулу ="ren """&A1&""" """&B1&".pdf""" в соседнем столбце (С) листа Excel, сформировав команды переименования

2)скопировала столбец  С, в котором сформированы команды переименования

2)открыла notepad++

3) меню "Кодировки" -> "Кодировки" -> "Кириллица" -> "OEM-866"

4)вставила в появившееся поле notepad++ скопированные команды переименования

5)дала сохраняемому файлу название pereimenovanie.bat

6)сохранила файл в папку (Сертификаты), в которой находятся файлы pdf, которые хочу переименовать согласно имён, указанных в столбце B листа Excel

7) открыла в папке Сертификаты файл pereimenovanie.bat

8)и имена файлов автоматически изменились на те, которые даны в столбце B листа Excel.

Этот приём заменяет ручную работу по переименованию каждого файла из массы пришедших, например, со сканера с определённой последовательностью.  Этим файлам надо было дать уникальные названия, и этот приём отлично сработал-файлы получили те названия, которые указаны в определённом столбце листа Excel.  

Изменено: Olga H. - 21.04.2019 15:53:25
 
Какое-то сложное решение получается (кодировки, нотепады++, ворды, баты...), можно ведь стандартно:
Код
Sub tt()
    Dim f
    For Each f In [a1].CurrentRegion.Columns(1).Cells
        Name f As f(1, 2)
    Next
End Sub

Но - в этом коде на приведённом выше файле с именами файлы переименовываются так, как прописано - т.е. в каталог где лежит файл с кодом, и без расширения.
Т.е. нужно доработать - или прописать полный путь на листе, или дописывать его в коде - например брать путь и расширение с первого столбца.
И ещё - у команды  Name есть ограничения:
Цитата
Name can move a file across drives, but it can only rename an existing directory or folder when both newpathname and oldpathname are located on the same drive. Name cannot create a new file, directory, or folder.
Изменено: Hugo - 21.04.2019 15:09:07
Страницы: 1
Наверх