Следующее работает отлично:
"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
.