首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >试图将双引号保留在来自R的命令提示符请求中

试图将双引号保留在来自R的命令提示符请求中
EN

Stack Overflow用户
提问于 2018-02-04 05:51:59
回答 2查看 145关注 0票数 2

我正在查看pdf文件的数量,并打算将它们转换为文本。我的脚本目前看起来如下:

代码语言:javascript
复制
setwd("test")
dest<-getwd()

#creating vector 

myfiles <- list.files(path = dest, pattern = "pdf",  full.names = TRUE)

#removing spaces from file names

sapply(myfiles, FUN = function(i){
  file.rename(from = i, to =  paste0(dirname(i), "/", gsub(" ", "", basename(i))))
})

#recreating vectors to renamed files

myfiles <- list.files(path = dest, pattern = "pdf",  full.names = TRUE)

#starting converter

sapply(myfiles, function(i) system2(paste("C:/Program Files/Wondershare/PDFelement 6 Professional/PDFelement.exe",i), wait = FALSE)) 

这将导致以下消息:

代码语言:javascript
复制
Warning message:
running command '"C:/Program Files/Wondershare/PDFelement 6 Professional/PDFelement.exe C:/Folder/Containing/The Test/Pdf.pdf"' had status 127 

据我理解,这是因为中间缺少两个双引号,如下所示:

代码语言:javascript
复制
'"C:/Program Files/Wondershare/PDFelement 6 Professional/PDFelement.exe**" "**C:/Folder/Containing/The Test/Pdf.pdf"'

然而,在花了几个小时的网上,我找不到一个方法,以拟合这两个双引号,而不完全打破表达。运行中的解决方案要么使用cat (我不能这样做,因为我没有尝试输出文本),要么使用ANSII,R直接引用了ANSII,而没有根据需要对其进行转换。真希望能在这里找到一些答案。

编辑:最后的解决方案只需要在最后一行进行更改。转换后的线条如下所示:

代码语言:javascript
复制
sapply(myfiles, function(i) system2("C:/Program Files/Wondershare/PDFelement 6 Professional/PDFelement.exe", args =paste0('"',i,'"',collapse = ""), wait = FALSE)) 

谢谢你的帮助!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-04 07:02:11

错误似乎发生在使用system2命令打开文件的方式上。实际上,文件的名称可以作为args传递给函数system2

修改后的代码可以是:

代码语言:javascript
复制
sapply(myfiles, function(i) system2(
     "C:/Program Files/Wondershare/PDFelement 6 Professional/PDFelement.exe",
      args = i, wait = FALSE)) 
票数 1
EN

Stack Overflow用户

发布于 2018-02-04 07:02:02

system2允许您提供传递给系统命令的附加参数。下列办法可能有效:

代码语言:javascript
复制
sapply(myfiles, function(i) system2("C:/Program Files/Wondershare/PDFelement 6 Professional/PDFelement.exe", args = i, wait = FALSE))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48605183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档