2016-04-27 55 views
1

我的makefile文件中有以下代码来删除文件,在tex文件编译成功后我不想保留这些文件。在Windows上使用MSM在MSYS上使用rm

grep '^OUTPUT ' $*.fls \ 
    | sed -e 's/^OUTPUT //' \ 
    | grep -vx [email protected] \ 
    | xargs rm 
rm $*.fls 
rm -f $*.bbl $*.blg 

成功生成pdf后出现以下错误。

rm: cannot remove `00_Master_Thesis.log': Permission denied 
rm: cannot remove `00_Master_Thesis.nlo': Permission denied 
rm: cannot remove `00_Master_Thesis.aux': Permission denied 
rm: cannot remove `00_Master_Thesis.out': Permission denied 
make.exe": *** [00_Master_Thesis.pdf] Error 123 

我试图添加几个命令来获得删除这些文件的权利,并检查包含这些文件的文件夹的权利。我也尝试以管理员身份启动cmd,但似乎没有任何帮助。

相同的makefile在我的Ubuntu系统上工作正常。 我怎样才能让删除Windows上的这些文件呢?

编辑:

这个问题似乎是,在PDF已被写入后pdflatex.exe不退出。我甚至无法手动删除这些文件,因为根据Windows资源管理器,它们仍然在pdflatex.exe中打开。

我杀pdflatex.exe错误消息后改变现在只显示:

rm: cannot remove `00_Master_Thesis.log': Permission denied 
make.exe": *** [00_Master_Thesis.pdf] Error 123 

现在除了日志文件只有* .LOG,* .bbl,*的.blg,* .fls, * .ilg和* .nls文件不会被删除。 * .aux,* .out和* .nlo文件在完成后会消失,这至少是朝着正确方向迈出的一步。 ^^

如何获得pdflatex.exe退出或释放文件,以便rm可以删除它们?

+0

但是'pdflatex'实际运行?由于ms-windows使用文件锁定,可能会出现这种情况,即当'pdflatex'退出时锁不会被删除。 –

+0

根据任务管理器,是的,完成后,pdflatex.exe仍在运行。 – Lilo

+1

如果手动运行'pdflatex',它会在完成时退出还是保持运行?标准输入/输出/错误从/到'/ dev/null'是否有帮助? –

回答

0

至于建议的@RonaldSmith,尝试添加两个选项:

-halt-on-error-interaction batchmode

那么它应该工作。