2017-02-22 9 views
0

Я хочу, чтобы создать скрипт для преобразования ОЦЕВ в формат PDF с LibreOffice, так что я создал следующий скрипт:Работают в файлах каталога в сценарии 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

Затем я попытался использовать команду «START» с опцией '/ WAIT' или использовать команду' CALL' при запуске soffice.exe. – 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, если у вас много файлов для преобразования, это может завершиться неудачно, потому что вы ограничены длиной строки 8192 для выполнения cmd. – Squashman

Смежные вопросы