Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Пакетное преобразование xls ->xlsx (xls -> csv)

Ответить
Настройки темы
PowerShell - [решено] Пакетное преобразование xls ->xlsx (xls -> csv)

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Требуется скрипт для преобразования всех файлов в определенной папке xls в xlsx (или csv).

Отправлено: 08:19, 07-07-2021

 

Аватара для DJ Mogarych

fascinating rhythm


Moderator


Сообщения: 6690
Благодарности: 1566

Профиль | Отправить PM | Цитировать


В составе Офиса есть конвертер.
Код: Выделить весь код
excelcnv.exe -oice file.xls file.xlsx

-------
Powershell 7.x | Powershell 5.1 | ffmpeg (docs)

Это сообщение посчитали полезным следующие участники:

Отправлено: 18:24, 07-07-2021 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


YuS_2, здесь:
Скрытый текст

надо быть аккуратнее и не забывать про короткие имена файлов. Посему в данном случае можно перебирать все и обязательно внутри ещё и проверять условие на точное соответствие расширения.

Цитата DJ Mogarych:
В составе Офиса »
DJ Mogarych, он точно в составе Office, а не отдельного Microsoft Office Compatibility Pack for Word, Excel, and PowerPoint File Formats?
Вопрос снимается. Для старого Office — это точно отдельный конвертер, а в составе новых, надо полагать, идёт в комплекте.


Оставлю сие здесь себе для памяти:

excelcnv command line: Hexacorn | Blog Excellent Conversions (and downloads)

И всё ещё не нашёл ответа про параметр «-nme».
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:43, 07-07-2021 | #12


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1232
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата Iska:
надо быть аккуратнее и не забывать про короткие имена файлов. »
надо отключать пережитки прошлого... напрочь... в том числе и ISE... тогда напрягать ресурсы памяти не надо будет.

Код: Выделить весь код
fsutil 8dot3name set 1

-------
scio me nihil scire. Ѫ


Отправлено: 20:34, 07-07-2021 | #13


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


Цитата YuS_2:
Да чего ему сделается? сессию закроют, объект попустит
Прежде - никто не знает, когда сессия завершится, да и по завершении невысвобожденный COM гарантировать ничего не может. В итоге получим либо утечку ресурсов, либо зомбика, либо... Вариантов много.
Это сообщение посчитали полезным следующие участники:

Отправлено: 22:30, 07-07-2021 | #14


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
никто не знает, когда сессия завершится »
я, если и закрываю сессию, то у меня все равно EXCEL висит в процессах, $Excel.Quit() не помогает, приходится еще такую строчку писать:
Stop-Process -Name EXCEL
а вот WINWORD не висит, закрывается по $Word.Quit(), хотя для надежности все равно пишу и Stop-Process -Name WINWORD
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:03, 07-07-2021 | #15


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


alpap, ReleaseComObject по идее должно быть достаточно.

Отправлено: 23:18, 07-07-2021 | #16


Ветеран


Сообщения: 1274
Благодарности: 564

Профиль | Отправить PM | Цитировать


нет, попробовал
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Excel)
недостаточно, вернулся на spps -n Excel

Отправлено: 23:53, 07-07-2021 | #17


Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Цитата YuS_2:
Код: Выделить весь код
fsutil 8dot3name set 1
»
У себя-то отключить можно… А если — не у себя?! Так что, пока — помним .

Отправлено: 00:13, 08-07-2021 | #18


Забанен


Сообщения: 793
Благодарности: 260

Профиль | Цитировать


alpap, речь не о завершении связанного процесса, а об уменьшении количества ссылок на указанный COM. Сигнал к завершению процессу подаётся, если количество ссылок равно нулю (значение возвращаемое ReleaseComObject). А вот если по истечении кванта времени, отведённого на завершение, процесс продолжает "болтаться", ничего не остаётся, как прибивать его вручную.
Это сообщение посчитали полезным следующие участники:

Отправлено: 00:15, 08-07-2021 | #19


Аватара для YuS_2

Crazy


Contributor


Сообщения: 1232
Благодарности: 515

Профиль | Отправить PM | Цитировать


Цитата greg zakharov:
ReleaseComObject по идее должно быть достаточно. »
Тоже так думал... но как показала практика, микрософт (как и я в данном случае ), плевать хотел на висяки в памяти и освобождение ресурсов, предназначенным для этого способом, работает как того захочется "великому электронобайту" от микрософт... может сработать, а может и не сработать.
Придется таки следить за наличием процесса в памяти (желательно по PID, чтобы не убить лишнего) и убивать его по завершении скрипта... или попробовать найти более вменяемый способ (мне лень этим заниматься, пока)...

Цитата greg zakharov:
А вот если по истечении кванта времени, отведённого на завершение, процесс продолжает "болтаться", ничего не остаётся, как прибивать его вручную. »
Вот-вот. Но задержки ставил, так что пока корректного способа не обнаружил...

-------
scio me nihil scire. Ѫ

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:17, 08-07-2021 | #20



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Пакетное преобразование xls ->xlsx (xls -> csv)

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Разное - [решено] Поиск по файлам xlsx и xls Sisin Microsoft Office (Word, Excel, Outlook и т.д.) 7 22-09-2015 15:48
PowerShell - [решено] csv to xls, xlsx firstarey Скриптовые языки администрирования Windows 3 17-03-2015 08:27
2003/XP/2000 - [решено] Пакет обеспечения совместимости Отключить автоматическре преобразование из xlsx в xls SANIOK_AV Microsoft Office (Word, Excel, Outlook и т.д.) 2 11-10-2011 17:29
PowerShell - Сложное преобразование xls или csv файла в текстовый tarasov.evgeny Скриптовые языки администрирования Windows 1 29-05-2011 15:04




 
Переход