Массовое преобразование xls в csv с помощью LibreOffice

Массовое преобразование xls в csv с помощью LibreOffice

Следующее работает отлично:

"path_to_libreoffice\soffice.exe" --convert-to csv test.xls

Однако при попытке конвертировать все xls-файлы в папке ничего не происходит:

"path_to_libreoffice\soffice.exe" --convert-to csv *.xls

Я могу скопировать все имена файлов xls и сделать это таким образом, но почему бы и нет *.xls?

решение1

В версии Linux подстановочные знаки будут расширены оболочкой в ​​список соответствующих файлов.

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

Самый простой ответ — использовать forутверждение:

for %f in (*.xls) do "path_to_libreoffice\soffice.exe" --convert-to csv "%f"

Обратите внимание, что это %fнеобходимо будет заменить %%fв пакетном файле.

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

Можно было бы создать единый график и список файлов из подстановочных знаков, но это потребовало бы сложных скриптов. В качестве альтернативы можно использовать порт Windows bash.

Связанный контент