0
業餘編碼器在這裏。我有一箇舊的R腳本,用於在多個文件夾中的文件上運行SoX統計信息,並將輸出寫入txt文件。同行請求在Windows機器上使用它,並希望能夠單擊一個.bat文件來運行它。我做了一個,但它輸出SoX統計到批處理文件窗口和統計通常輸出爲空的txt文件。我讀過這是因爲R處理stderr,但我找不到解決方案。我真的只熟悉R,但一直在教自己的Python,所以如果有這樣的替代語言解決方案,我全都是耳朵。通過.bat運行時將SoX Stats寫入文件
我的 「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"
提前感謝!