Показать полную графическую версию : Копирование файла и переименование согласно списка из exel
TPOJIb_55
31-05-2016, 13:25
Стоит задача:
Имеем 2 файла
картинка.jpg
файл.xls - в файле имеем список id формата 546738
Необходимо копировать файл картинка.jpg и переименовывать его p546738-0mw.jpg то количество раз сколько id в фале файл.xls
megaloman
31-05-2016, 14:37
TPOJIb_55, куда копировать и почему надо переименовывать, не проще ли копировать с новым именем? Как расположен список ID В XLS файле. ИМХО, ваш вопрос не совсем в тему cmd/bat. Почему бы не написать в файл.xls макрос, который выполнит эту задачу?
TPOJIb_55
31-05-2016, 15:38
megaloman, Файлы в одной папке и необходимо в эту же папку сложить тоже количество файлов что и id в файле. Файлы могут меняться, и в содержание "файл.xls" меняется список id. С макросами вообще не дружу, поэтому не знаю как это реализовать и отработает ли он если необходимо создать 1000 файлов по списку. В файле список в колонку.
megaloman
31-05-2016, 21:21
Book = "файл.xls"
NFile = "картинка.jpg" ' Имя размножаемого файла
NewPref = "p" ' Префикс нового имени
NewSuff = "-0mw" ' Суффикс нового имени
First = "A1" ' Верхняя клетка с данными в столбце
Where=CreateObject("WScript.Shell").CurrentDirectory+"\"
PBook=Where+Book
' MsgBox PBook
Set XL = CreateObject("Excel.Application")
XL.Visible = False ' True
XL.Workbooks.Open PBook
PName = Where + NFile
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(PName) Then
Ext = FSO.GetExtensionName(PName)
i = 0
With XL.Range(First)
Do
RR = CStr(.Offset(i, 0))
If Len(Trim(CStr(.Offset(i, 0)))) = 0 Then Exit Do
i = i + 1
aaa = FSO.CopyFile(PName, Where + "\" + NewPref + RR + NewSuff + "." + Ext, True)
Loop
MsgBox "Файл" + vbCrLf + PName + vbCrLf + "скопирован " + CStr(i) + " раз"
End With
Else
MsgBox "Файл" + vbCrLf + PName + vbCrLf + "не найден"
End If
XL.Quit
Скрипт должен быть расположен в той же папке, что картинка.jpg и файл.xls. В тексте скрипта настройте реальные имена файлов и адрес ячейки, с которой начинаются данные в столбце файл.xls.
Во вложенном файле присутствует таблица с примером использования макроса. Открываете таблицу, Меню - Сервис - Макросы - Макрос назвал rrr, изменяете его: пИшите реальные имена файлов и указываете начальную клетку. Сохраняете, запускаете на выполнение.
TPOJIb_55
01-06-2016, 09:28
megaloman, Огромное вам спасибо! Все работает как часы!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.