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

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

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

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

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

1 ответ1

2

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

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

Самый простой ответ - использовать оператор for :

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .