Я пытаюсь создать несколько процессов для рекурсивного преобразования .doc
файлов в папке в .docx
, используя Microsoft wordconv.exe
.Я знаю, что это породит их неограниченное количество, так что проблема не в этом.
Вот что у меня есть:
@echo off
set "WCONV=C:\Program Files\Microsoft Office\root\Office16\Wordconv.exe"
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.doc) DO (
echo "%%F\%%X"
start /b "" %WCONV% -oice -nme "%%X" "%%Xx" && del "%%X"
)
popd
)
Проблема в том, что del "%%X"
, кажется, выполняетсяпосле успешного завершения start /b
вместо завершения %WCONV% -oice -nme "%%X" "%%Xx"
, поэтому оригинальный файл .doc
удаляется до того, как wordconv
начинает работать с ним.
Как мне сгруппировать %WCONV% -oice -nme "%%X" "%%Xx" && del "%%X"
, чтобыона работает как одна команда для start /b
, чтобы порождать?
EDIT, чтобы уточнить: Если я запускаю скрипт последовательно, без start /b
, все работает нормально, как в документах конвертируютсяи удаляется только в случае успешного преобразования.Вот что я имею в виду:
@echo off
set "WCONV=C:\Program Files\Microsoft Office\root\Office16\Wordconv.exe"
FOR /D /r %%F in ("*") DO (
pushd %CD%
cd %%F
FOR %%X in (*.doc) DO (
echo "%%F\%%X"
%WCONV% -oice -nme "%%X" "%%Xx" && del "%%X"
)
popd
)