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"