Converter em massa xls para csv usando o LibreOffice

Converter em massa xls para csv usando o LibreOffice

O seguinte funciona bem:

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

No entanto, quando tento converter todos os arquivos xls da pasta, nada acontece:

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

Posso copiar todos os nomes de arquivos xls e fazer assim, mas por que não funcionaria *.xls?

Responder1

A versão Linux terá curingas expandidos pelo shell em uma lista de arquivos correspondentes.

A versão do Windows deve aceitar uma lista de arquivos, mas cmdnão irá expandi-la para você.

A resposta mais fácil é usar uma fordeclaração:

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

Observe que isso %fprecisará ser substituído %%fem um arquivo em lote.

Isso é menos eficiente do que fornecer uma lista de arquivos, onde todas as conversões são feitas em um único agendamento, enquanto executa um agendamento separado para cada conversão.

Pode ser possível criar uma única programação e lista de arquivos a partir de caracteres curinga, mas isso exigiria scripts complexos. Alternativamente, você pode usar uma porta Windows do bash.

informação relacionada