![]() |
Составить список файлов из папки в заданном виде
Дорого времени суток, великие и могучие!
Помогите пожалуйста. Как сделать батник, который из папки с файлами смог бы сформировать файл 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 не раздуплю как это сделать. Помогите пожалуйста. Или подскажите какой софт есть для автоматизации этого процесса. |
Цитата:
Код:
param( |
Fors1k, а кто экземпляр COM освободит? Хотя по идее это должен делать GC, в действительности этого никогда не произойдёт. Поэтому помимо прочего нужно вызвать ReleaseComObject после Quit ([Runtime.InteropServices.Marshal]::RealeaseComObject($excel)).
|
Я скопировал этот текст в батник, запустил, но файл не создался. Что я делаю не так? (
|
Наверное, потому, что это не батник. Сохраните текст в файле с расширением ps1 и запускайте через powershell.
|
Запустил код :
param( $pathFolder = 'p:\file', $pathXls = 'p:\links.xlsx' )cls $Excel = New-Object -ComObject Excel.Application $WorkBook = $Excel.Workbooks.Add() $WorkSheet = $WorkBook.Worksheets.Item(1) gci $pathFolder -rec -file|%{$i=1}{ [void]$WorkSheet.Cells.Hyperlinks.Add( $workbook.Worksheets.Item(1).Cells.Item($i++,1),$_.FullName ) } $Range = $WorkSheet.UsedRange [void]$Range.EntireColumn.AutoFit() $workBook.saveAs($pathXls);$excel.Quit() [Runtime.InteropServices.Marshal]::ReleaseComObject($excel) через powershell. Файл xlsx создался, УРА! но он пустой, там нет никаких ссылок. ( Выдает еще ошибку : Get-ChildItem : Не удается найти параметр, соответствующий имени параметра "file". строка:1 знак:27 + gci $pathFolder -rec -file <<<< |%{$i=1}{ + CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand |
Цитата:
Код:
@echo off |
спасибо за участие, но при таком варианте просто создается txt файл с адресами на файлы и все. Как сделать именно гиперссылки внутри excel?
|
спасибо за участие, но при таком варианте просто создается txt файл с адресами на файлы и все. Как сделать именно гиперссылки внутри excel?
|
Цитата:
Код:
$host.Version.Major https://www.microsoft.com/en-us/down....aspx?id=54616 |
Цитата:
Код:
@Echo Off Вот макрос Excel для создания в ячейках гиперссылок на файлы в указанной папке безо всяких txt
Код:
Sub DirGiper() Вот VBS-скрипт (создать файл с расширением .vbs в 1251 кодировке и выполнить его), и никакого левого txt-файла и ручной работы не потребуется
Код:
MyDir = "Z:\Box_In\У попа была собака" |
Друзья! Спасибо огромное за помощь! Первый предложенный вариант действительно работает, просто надо было обновиться. Но хотелось бы выделить пользователя megaloman он предложил самый точный вариант соответствующий ТЗ и кроме того добавил самый адекватный и логически правильный вариант решения данной проблемы! Его макрос работает. Всем рекомендую! Спасибо ресурсу за возможность решения моей проблемы так быстро!:)
|
[post]Вот макрос Excel для создания в ячейках гиперссылок на файлы в указанной папке безо всяких txt[post]
А как бы сделать чтобы после запуска данного макроса в результате в ячейке отображался не путь к папке, а что-то вроде кнопки или слово "ССЫЛКА" и ячейка подсвечивалась каким-либо цветом, к примеру нежно зеленым. :grin: |
после запуска данного макроса в результате в ячейке отображался не путь к папке, а что-то вроде кнопки или слово "ССЫЛКА" и ячейка подсвечивалась каким-либо цветом, к примеру нежно зеленым
Код:
Sub DirGiper0() |
Время: 20:41. |
Время: 20:41.
© OSzone.net 2001-