Bulk converter xls para csv usando o LibreOffice

0

O seguinte funciona bem:

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

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

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

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

    
por kat 28.09.2017 / 17:46

1 resposta

2

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

A versão do Windows deve aceitar uma lista de arquivos, mas cmd não expandirá isso para você.

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

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

Observe que %f precisará ser substituído por %%f em um arquivo em lotes.

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

Pode ser possível criar um único agendamento e lista de arquivos a partir de curingas, mas isso exigiria scripts complexos. Como alternativa, você pode usar uma porta do Windows de bash .

    
por 28.09.2017 / 19:08