Convierta de forma masiva xls a csv usando LibreOffice

Convierta de forma masiva xls a csv usando LibreOffice

Lo siguiente funciona bien:

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

Sin embargo, cuando intento convertir todos los archivos xls de la carpeta, no sucede nada:

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

Puedo copiar todos los nombres de archivos xls y hacerlo así, pero ¿por qué no funcionaría *.xls?

Respuesta1

La versión de Linux tendrá comodines expandidos por el shell en una lista de archivos coincidentes.

La versión de Windows debería aceptar una lista de archivos, pero cmdno la expandirá.

La respuesta más sencilla es utilizar una fordeclaración:

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

Tenga en cuenta que %fserá necesario reemplazarlo %%fen un archivo por lotes.

Esto es menos eficiente que proporcionar una lista de archivos, donde todas las conversiones se realizan en un solo programa, mientras que esto realiza un programa separado para cada conversión.

Podría ser posible crear una única programación y lista de archivos a partir de comodines, pero esto requeriría secuencias de comandos complejas. Alternativamente, puede utilizar un puerto de Windows de bash.

información relacionada