|
Компьютерный форум 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 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Цитата burolf:
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) |
|
Последний раз редактировалось Fors1k, 28-09-2020 в 20:32. Причина: Добавлено ReleaseComObject Отправлено: 17:03, 28-09-2020 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Забанен Сообщения: 793
|
Fors1k, а кто экземпляр COM освободит? Хотя по идее это должен делать GC, в действительности этого никогда не произойдёт. Поэтому помимо прочего нужно вызвать ReleaseComObject после Quit ([Runtime.InteropServices.Marshal]::RealeaseComObject($excel)).
|
Отправлено: 17:59, 28-09-2020 | #3 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Я скопировал этот текст в батник, запустил, но файл не создался. Что я делаю не так? (
|
Отправлено: 09:51, 29-09-2020 | #4 |
Ветеран Сообщения: 992
|
Профиль | Сайт | Отправить PM | Цитировать Наверное, потому, что это не батник. Сохраните текст в файле с расширением ps1 и запускайте через powershell.
|
|
Отправлено: 10:45, 29-09-2020 | #5 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать Запустил код :
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: ( ![]() + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand |
Последний раз редактировалось burolf, 29-09-2020 в 11:33. Отправлено: 11:24, 29-09-2020 | #6 |
Ветеран Сообщения: 1274
|
Профиль | Отправить PM | Цитировать Цитата burolf:
Забыл указать, текстовый редактор должен быть не штатный виндовый блокнот, а что-то посолиднее, иначе наверное не получится. |
|
Последний раз редактировалось alpap, 29-09-2020 в 15:23. Отправлено: 15:12, 29-09-2020 | #7 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать спасибо за участие, но при таком варианте просто создается txt файл с адресами на файлы и все. Как сделать именно гиперссылки внутри excel?
|
Отправлено: 15:37, 29-09-2020 | #8 |
Новый участник Сообщения: 7
|
Профиль | Отправить PM | Цитировать спасибо за участие, но при таком варианте просто создается txt файл с адресами на файлы и все. Как сделать именно гиперссылки внутри excel?
|
Отправлено: 16:28, 29-09-2020 | #9 |
Старожил Сообщения: 193
|
Профиль | Отправить PM | Цитировать Цитата burolf:
https://www.microsoft.com/en-us/down....aspx?id=54616 |
|
Отправлено: 18:20, 29-09-2020 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
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 |
|