以下操作正常:
"path_to_libreoffice\soffice.exe" --convert-to csv test.xls
但是,当我尝试转换文件夹中的所有 xls 文件时,什么也没有发生:
"path_to_libreoffice\soffice.exe" --convert-to csv *.xls
我可以复制所有 xls 文件名并像那样执行,但为什么不起作用*.xls
?
答案1
Linux 版本会将通配符由 shell 扩展为匹配文件的列表。
Windows 版本应该接受文件列表,但cmd
不会为您扩展。
最简单的答案是使用一个for
语句:
for %f in (*.xls) do "path_to_libreoffice\soffice.exe" --convert-to csv "%f"
请注意,%f
需要%%f
在批处理文件中将其替换。
这比提供文件列表效率较低,因为文件列表中的所有转换都在一个计划中完成,而这会为每个转换执行单独的计划。
也许可以通过通配符创建单个计划和文件列表,但这需要复杂的脚本。或者,您可以使用 Windows 端口bash
。