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 cmd
no la expandirá.
La respuesta más sencilla es utilizar una for
declaración:
for %f in (*.xls) do "path_to_libreoffice\soffice.exe" --convert-to csv "%f"
Tenga en cuenta que %f
será necesario reemplazarlo %%f
en 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
.