|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Составить список файлов из папки в заданном виде |
|
CMD/BAT - [решено] Составить список файлов из папки в заданном виде
|
Новый участник Сообщения: 7 |
Дорого времени суток, великие и могучие!
Помогите пожалуйста. Как сделать батник, который из папки с файлами смог бы сформировать файл txt по следующему принципу: В папке есть n количество файлов (оно всегда растет) Необходимо в txt файле создать текст следующего формата: Range("A1").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="P:\files\название файла с расширением" _ , TextToDisplay:="P:\files\название файла с расширением" Range("A2").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="P:\files\название второго файла с расширением" _ , TextToDisplay:="P:\files\название второго файла с расширением" ....................... Range("An").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="P:\files\название n-ого файла с расширением" _ , TextToDisplay:="P:\files\название n-ого файла с расширением" В этом случае "P:\files\" константа, которую можно задавать в зависимости от расположения файла перед запуском батника ЛИБО Range("A1").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="название файла с расширением и путем к нему" _ , TextToDisplay:="название файла с расширением и путем к нему" Range("A2").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="название второго файла с расширением и путем к нему" _ , TextToDisplay:="название второго файла с расширением и путем к нему" ............................. Range("An").Select ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="название n-ого файла с расширением и путем к нему" _ , TextToDisplay:="название n-ого файла с расширением и путем к нему" Кому интересно для чего это мне необходимо. Я хочу потом данный текст скопировать в Макрос excel и создать файл с гиперссылками на файлы в папке, в которой этот батник будет запущен. Непосредственно в excel не раздуплю как это сделать. Помогите пожалуйста. Или подскажите какой софт есть для автоматизации этого процесса. |
|
Отправлено: 15:53, 28-09-2020 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать Цитата burolf:
![]() @Echo Off cls >nul Chcp 1251 Set "BoxIn=Z:\Box_In\У попа была собака" Set "Mask=*.*" Set "FileOut=Z:\Бред сивой кобылы.txt" Set /A N=0 >"%FileOut%" (FOR /F "usebackq delims=" %%f IN (`2^>nul Dir /B /A:-D "%BoxIn%\%Mask%"`) DO ( Call Set /A N+=1 Call Echo ActiveSheet.Hyperlinks.Add Anchor:=Range^("A%%N%%"^), Address:="%BoxIn%\%%f", TextToDisplay:="%BoxIn%\%%f" )) pause Exit /B Вот макрос Excel для создания в ячейках гиперссылок на файлы в указанной папке безо всяких txt
Sub DirGiper() MyDir = "Z:\Box_In\У попа была собака" MyMask = "^.*\..*$" Set Reg = CreateObject("VBScript.RegExp") Reg.IgnoreCase = True Reg.Pattern = MyMask With CreateObject("Scripting.FileSystemObject") Set Files = .GetFolder(MyDir).Files N = 0 For Each File In Files Filename = File.Path If Reg.Test(Filename) Then N = N + 1 ActiveSheet.Hyperlinks.Add Anchor:=Range("A" + CStr(N)), Address:=Filename, TextToDisplay:=Filename End If Next End With MsgBox "Done" End Sub Вот VBS-скрипт (создать файл с расширением .vbs в 1251 кодировке и выполнить его), и никакого левого txt-файла и ручной работы не потребуется
MyDir = "Z:\Box_In\У попа была собака" MyMask = "^.*\..*$" Set Reg = CreateObject("VBScript.RegExp") Reg.IgnoreCase = True Reg.Pattern = MyMask Set Files = CreateObject("Scripting.FileSystemObject").GetFolder(MyDir).Files With CreateObject("Excel.Application") .Visible = True .Workbooks.Add N = 0 For Each File In Files Filename = File.Path If Reg.Test(Filename) Then N = N + 1 Call .ActiveSheet.Hyperlinks.Add(.Range("A" + CStr(N)), Filename) End If Next End With |
|
------- Последний раз редактировалось megaloman, 29-09-2020 в 23:27. Отправлено: 22:30, 29-09-2020 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Друзья! Спасибо огромное за помощь! Первый предложенный вариант действительно работает, просто надо было обновиться. Но хотелось бы выделить пользователя megaloman он предложил самый точный вариант соответствующий ТЗ и кроме того добавил самый адекватный и логически правильный вариант решения данной проблемы! Его макрос работает. Всем рекомендую! Спасибо ресурсу за возможность решения моей проблемы так быстро!
![]() |
Отправлено: 12:09, 02-10-2020 | #12 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать [post]Вот макрос Excel для создания в ячейках гиперссылок на файлы в указанной папке безо всяких txt[post]
А как бы сделать чтобы после запуска данного макроса в результате в ячейке отображался не путь к папке, а что-то вроде кнопки или слово "ССЫЛКА" и ячейка подсвечивалась каким-либо цветом, к примеру нежно зеленым. ![]() |
Отправлено: 12:48, 02-10-2020 | #13 |
Ветеран Сообщения: 2728
|
Профиль | Отправить PM | Цитировать после запуска данного макроса в результате в ячейке отображался не путь к папке, а что-то вроде кнопки или слово "ССЫЛКА" и ячейка подсвечивалась каким-либо цветом, к примеру нежно зеленым
Sub DirGiper0() MyDir = "Z:\Box_In\У попа была собака" MyMask = "^.*\..*$" Set Reg = CreateObject("VBScript.RegExp") Reg.IgnoreCase = True Reg.Pattern = MyMask With CreateObject("Scripting.FileSystemObject") Set Files = .GetFolder(MyDir).Files N = 0 For Each File In Files Filename = File.Path If Reg.Test(Filename) Then N = N + 1 ActiveSheet.Hyperlinks.Add Anchor:=Range("A" + CStr(N)), Address:=Filename, TextToDisplay:="Ссылка" With Range("A" + CStr(N)) With .Font .FontStyle = "полужирный курсив" End With With .Interior .Pattern = xlSolid .Color = 12314553 End With With .Borders(xlEdgeLeft) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlEdgeTop) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlEdgeBottom) .LineStyle = xlContinuous .Weight = xlMedium End With With .Borders(xlEdgeRight) .LineStyle = xlContinuous .ColorIndex = 0 .TintAndShade = 0 .Weight = xlMedium End With End With End If Next End With MsgBox "Done" End Sub |
------- Последний раз редактировалось megaloman, 02-10-2020 в 15:31. Отправлено: 15:16, 02-10-2020 | #14 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - копирования файлов из исходной папки в папки получатели согласно txt.файлу | sevan_k | Скриптовые языки администрирования Windows | 3 | 12-06-2020 18:07 | |
CMD/BAT - [решено] Нужно составить список файлов с определённым расширением и загонял его в TXT | i-Lex | Скриптовые языки администрирования Windows | 4 | 28-02-2012 06:36 | |
C/C++ - список файлов из папки - в листБокс | Voffka123 | Программирование и базы данных | 1 | 18-05-2010 15:50 | |
Помогите составить список всяких проблем с компами | mitiya | Флейм | 12 | 28-04-2010 21:15 | |
Список файлов при копировании папки i386 winxp | rgsx | Автоматическая установка Windows 2000/XP/2003 | 1 | 27-08-2009 15:12 |
|