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 cmd
não irá expandi-la para você.
A resposta mais fácil é usar uma for
declaração:
for %f in (*.xls) do "path_to_libreoffice\soffice.exe" --convert-to csv "%f"
Observe que isso %f
precisará ser substituído %%f
em 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
.