CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Аватара пользователя
burolf

CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение burolf »

Дорого времени суток, великие и могучие!

Помогите пожалуйста. Как сделать батник, который из папки с файлами смог бы сформировать файл 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 не раздуплю как это сделать. Помогите пожалуйста. Или подскажите какой софт есть для автоматизации этого процесса.
Аватара пользователя
Fors1k

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение Fors1k »

Цитата burolf:



создать файл с гиперссылками на файлы в папке
CMD/BAT - [решено] Составить список файлов из папки в заданном виде






Код:

Код: Выделить всё

param(
    $pathFolder = 'C:\files',
    $pathXls    = 'C:\docs\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)
Аватара пользователя
megaloman

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение megaloman »

Fors1k, а кто экземпляр COM освободит? Хотя по идее это должен делать GC, в действительности этого никогда не произойдёт. Поэтому помимо прочего нужно вызвать ReleaseComObject после Quit ([Runtime.InteropServices.Marshal]::RealeaseComObject($excel)).
Аватара пользователя
greg zakharov

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение greg zakharov »

Fors1k, а кто экземпляр COM освободит? Хотя по идее это должен делать GC, в действительности этого никогда не произойдёт. Поэтому помимо прочего нужно вызвать ReleaseComObject после Quit ([Runtime.InteropServices.Marshal]::RealeaseComObject($excel)).
Аватара пользователя
burolf

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение burolf »

Я скопировал этот текст в батник, запустил, но файл не создался. Что я делаю не так? (
Аватара пользователя
burolf

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение burolf »

Наверное, потому, что это не батник. Сохраните текст в файле с расширением ps1 и запускайте через powershell.
Аватара пользователя
burolf

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение burolf »

Цитата burolf:



текст скопировать в Макрос excel и создать файл с гиперссылками на файлы в папке
CMD/BAT - [решено] Составить список файлов из папки в заданном виде




чего не сразу из txt файла



Код:

Код: Выделить всё

@echo off
set "spath=C:\Papka"
>file.txt (for /f "delims=" %%a in ('dir /a-d/b/s "%spath%\*.*"') do @set "f=%%a"& call echo file:///%%f:\=/%%)
pause

Забыл указать, текстовый редактор должен быть не штатный виндовый блокнот, а что-то посолиднее, иначе наверное не получится.
Аватара пользователя
alpap

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение alpap »

спасибо за участие, но при таком варианте просто создается txt файл с адресами на файлы и все. Как сделать именно гиперссылки внутри excel?
Аватара пользователя
burolf

Re: CMD/BAT - [решено] Составить список файлов из папки в заданном виде

Сообщение burolf »

спасибо за участие, но при таком варианте просто создается txt файл с адресами на файлы и все. Как сделать именно гиперссылки внутри excel?
Ответить

Вернуться в «Скриптовые языки администрирования Windows»