아마추어 코더는 여기에 있습니다. 여러 폴더에 걸쳐 파일에 SoX 통계를 실행하고 txt 파일에 출력을 쓰는 오래된 R 스크립트가 있습니다. 피어가 Windows 컴퓨터에서이 파일을 사용하도록 요청했으며이를 실행하기 위해 .bat 파일을 클릭 할 수 있기를 원합니다. 나는 하나 만들었지 만 배치 파일 창에 SoX 통계를 출력하고 통계는 일반적으로 출력되는 txt 파일을 비워 둡니다. R이 표준 오류를 처리하는 방법 때문에 읽었지만 내 문제에 대한 해결책을 찾을 수 없습니다. 저는 R에 정통한 분이 십니다. 파이썬을 가르쳐 왔기 때문에, 대체 언어 솔루션이 있다면, 나는 모든 귀입니다. 사전에.bat를 통해 실행할 때 파일에 SoX 통계 작성하기
내 "삭스 - 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"
감사합니다!