R中的system()命令 - 运行exiftool时出错

时间:2016-02-15 16:28:37

标签: r command exiftool

我正在尝试通过R运行exiftool来使用system()命令从照片中获取元数据。当我在Mac上运行它,它工作正常,但从Windows我没有正确连接cmd.exe并从此代码中获得以下错误:

    exif_datetime <- function(path) {

     exif_cmd <- 'exiftool.pl -T -r -DateTimeOriginal '  
     cmd <- paste(exif_cmd, "'", path, "'" ,sep='')
     exif_time <- system(cmd, intern = TRUE) 

    exif_time
}
   photo_time <- exif_datetime('C:/Users/photo.jpg')
   photo_time



   Error in system(cmd, intern = TRUE) : 
   'CreateProcess' failed to run 'C:\Windows\exiftool.pl -T -r -DateTimeOriginal 'C:/Users/photo.jpg''

当我从Windows中的cmd.exe运行exiftool命令时,我得到了正确的结果。我的exiftool.pl位于我计算机上的C:Windows文件夹中。有什么关于我错过的PATH吗?另外,我记得一些关于windows需要shell的东西,但是我还没弄清楚这是不是我需要的,也不知道如何正确创建一个。

1 个答案:

答案 0 :(得分:1)

感谢您的所有建议。我找到了一个适合我的解决方案,涉及shell()命令。我认为它必须以某种方式与system()命令合并,但它似乎可以独立工作。

    exif_datetime <- function(path) {

    exif_call <- 'exiftool.pl'  
    exif_cmd<-' -r -T -DateTimeOriginal '

    exif_timestamp <- shell(paste(exif_call, exif_cmd, path), intern=T) 

    exif_timestamp
    }
  photo_time <- exif_datetime('C:/Users/photo.jpg')
  photo_time


  [1] "2016:02:14 11:50:29"