system() команда в R - Ошибка запуска exiftool

Я пытаюсь запустить exiftool через R, чтобы получить метаданные из фотографий с помощью команды 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''

Когда я запускаю команду exiftool из cmd.exe в Windows, я получаю правильный результат. Мой exiftool.pl находится в папке C:Windows на моем компьютере. Есть ли что-то в отношении ПУТИ, которого мне не хватает? Кроме того, я помню кое-что о окнах, нуждающихся в оболочке, но я не понял, является ли это тем, что мне нужно в моем случае, или как правильно его создать.

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"
Другие вопросы по тегам