2014-09-29 68 views
1

我正在使用shell()命令从函数内的.tex文件生成pdf文档。此功能有时会通过调整后的数据运行多次,因此会覆盖文档。当然,如果pdf文件在运行.tex文件时打开,它会生成一个错误,说明它无法运行.tex文件。所以我想知道是否有任何R或Windows cmd命令来检查文件是否打开?检查文件是否使用R内的Windows命令行打开

+2

切换到一个体面的PDF阅读器不会被阻止。我使用SumatraPDF。 – Andrie 2014-09-29 15:34:07

+0

我也使用它,但这是为使用Adobe的其他人。 – nathaneastwood 2014-09-29 15:34:54

回答

1

我并不认为这是一个很好的解决方案:它很冒险,但也许它会做。您可以复制该文件并尝试用它覆盖原始文件。如果失败,则不会造成伤害。如果成功,您将修改文件的信息(而不是内容),但是由于您的最终目标是无论如何都要覆盖它,我怀疑这会是一个大问题。无论哪种情况,您都会修改是否可以重写该文件。如果找到和1+如果没有找到或错误

is.writeable <- function(f) { 
    tmp <- tempfile() 
    file.copy(f, tmp) 
    success <- file.copy(tmp, f) 
    return(success) 
} 
0
openfiles /query /v|(findstr /i /c:"C:\Users\David Candy\Documents\Super.xls"&&echo File is open||echo File isn't opened) 

输出

592 David Candy  1756  EXCEL.EXE   C:\Users\David Candy\Documents\Super.xls 
File is open 

Findstr工具返回0。

& seperates commands on a line. 

&& executes this command only if previous command's errorlevel is 0. 

|| (not used above) executes this command only if previous command's errorlevel is NOT 0 

> output to a file 

>> append output to a file 

< input from a file 

| output of one command into the input of another command 

^ escapes any of the above, including itself, if needed to be passed to a program 

" parameters with spaces must be enclosed in quotes 

+ used with copy to concatinate files. E.G. copy file1+file2 newfile 

, used with copy to indicate missing parameters. This updates the files modified date. E.G. copy /b file1,, 

%variablename% a inbuilt or user set environmental variable 

!variablename! a user set environmental variable expanded at execution time, turned with SelLocal EnableDelayedExpansion command 

%<number> (%1) the nth command line parameter passed to a batch file. %0 is the batchfile's name. 

%* (%*) the entire command line. 

%<a letter> or %%<a letter> (%A or %%A) the variable in a for loop. Single % sign at command prompt and double % sign in a batch file. 


. 
-- 
相关问题