2017-02-22 67 views
0

我想创建一个脚本来ODTS转换为与LibreOffice中的PDF文件,所以我创建了下面的脚本:操作在目录中的Windows脚本

@echo off 
for %%f in (*.odt) do (
      soffice.exe --headless --convert-to pdf "%%~nf.odt" 
) 

但这是缓慢的,因为它可以创建许多流程。所以,我要做到以下几点:

soffice.exe --headless --convert-to pdf file1 file2 file3 .... filen 

,并处理所有的命令调用的文件。

+0

嗯。理论上这个代码一次只能转换一个文件。一次只能运行一个进程。 – Squashman

+0

不,它的工作原理。我试过了。 – arcad

+0

然后,我会尝试在'/ WAIT'选项中使用'START'命令,或者在启动soffice.exe时使用'CALL'命令。 – Squashman

回答

1

建立文件列表,然后再调用转换器:

@echo off 
setlocal enabledelayedexpansion 
set filelist= 
for %%f in (*.odt) do (
      set "filelist=!filelist! "%%~nf.odt"" 
) 
soffice.exe --headless --convert-to pdf %filelist% 
+0

谢谢,那正是我想要的。 – arcad

+1

@arcad,如果你有很多文件需要转换,可能会失败,因为你在执行cmd之前被限制为8192的行长度。 – Squashman