Прошу прощения за мое исчезновение из темы, просто вот-вот, вот-вот, а затянулось. Мне удалось написать батник для автоматической обработки документов .tex с кодом asymptote, да еще и с предпросмотром. Получился батник, который обрабатывает все файлы .tex, находящиеся с ним в одной папке, причем, если хотя бы в одном файле .tex есть хотя бы один код Asymptote, после первой компиляции pdflatex'ом все образовавшиеся файлы .asy обрабатываются программой Asymptote, а затем все файлы .tex, в которых есть код Asymptote, повторно компилируются pdflatex'ом.
Так передавайте его параметром. В Проводнике это будет просто перетаскивание нужного файла на файл вашего скрипта.
Мне это было нежелательно, я хотел, повторюсь, добиться полной автоматизации, чтоб нажал "Открыть" и все произошло само собой. Код батника оказался следующим:
Код:
echo off
rem устанавливаю в качестве рабочей папки папку, в который находится
rem данный батник
cd /d %0\..
chcp 1251
cd>imena.txt
for %%f in (*.tex) do echo %%~nf >> imena.txt
for %%f in (*.tex) do pdflatex %%f
if exist *-1.asy cd>imena1.txt
for %%g in (*.tex) do (if exist %%~ng-1.asy (echo %%g >> imena1.txt
asy *.asy
for /f "skip=1" %%g in (imena1.txt) do pdflatex %%g
) else (
echo 2)
)
for /f "skip=1" %%f in (imena.txt) do %%f.pdf
del imena*.txt
pause
Я вот только одного не могу понять: почему если в коде нет команды echo 2, последней выполняемой батником командой является
Код:
if exist *-1.asy cd>imena1.txt
? И окно командной строки закрывается, несмотря на команду pause? Это что, если в коде есть команда else, в ее аргументе что-то должно быть? А как сделать так, чтобы образовавшиеся pdf с названиями из imena.txt открывались не по очереди, а сразу? А, да, еще забыл сказать. Чтобы все работало, надо, чтобы в именах исходных .tex не было пробелов. Сейчас попробовал устранить этот недостаток кавычками, не получилось.