Любительский кодер здесь. У меня есть старый R-скрипт, который запускает статистику SoX для файлов в нескольких папках и записывает выходные данные в файлы txt. Один из пользователей попросил использовать его на своей машине Windows и хотел бы просто щелкнуть файл .bat для его запуска. Я сделал один, но он выводит статистику SoX в окно пакетного файла и txt-файлы, которые, как правило, выводятся, являются пустыми. Я читал это из-за того, как R обрабатывает stderr, но я не могу найти решение для своей проблемы. Я действительно только разбираюсь в R, но преподавал сам Python, поэтому, если есть альтернативное языковое решение, я все уши.Написание SoX Stats на файл при запуске через .bat
Мой "сокс-stats.R" Сценарий
setwd("~/R/sox-stats/")
for(l in list.dirs(recursive=FALSE)){
setwd(paste0("~/R/sox-stats/", l))
print(paste0("Directory set to ", l))
dir.create("./stats/", showWarnings = FALSE)
directoryAll <- list.files()
statFolder <- list.files(pattern="stats")
for(file in setdiff(directoryAll, statFolder)){
firstSox <- paste("sox \"",file,"\" -n stats",sep="")
write(system(firstSox, intern = TRUE), paste("./stats/", file, "_stats.txt", sep=""))
print(paste0(file, " has been processed."))
}
}
Мой .bat файла
@ECHO OFF
ECHO Hello, so you want to get some SoX Stats?
ECHO ------------------------------------------------
ECHO Press any key to start me up!
PAUSE >NUL
cd C:\Program Files\R\R-3.3.0\bin
rscript sox-stats.R
IF ERRORLEVEL 1 ECHO SoX Says: Something went wrong. Check messages
above for clues. Press any key to close SoX Stats.
IF NOT ERRORLEVEL 1 ECHO SoX Says: PROCESSING COMPLETE. Press any key to close this window
and open your "sox-stats" folder.
pause >nul
IF NOT ERRORLEVEL 1 %SystemRoot%\explorer.exe "C:\Users\user\Documents\R\sox-stats"
Заранее спасибо!