ここにアマチュアコーダーがあります。私は古いRスクリプトを持っていて、複数のフォルダにまたがるファイルに対してSoXの統計を実行し、その出力をtxtファイルに書き込みます。ピアは、Windowsマシンでそのファイルを使用するように要求しましたが、.batファイルをクリックして実行できるようにしたいと考えています。私は1つを作ったが、SoXの統計情報をバッチファイルのウィンドウに出力し、統計情報の出力は空白になる。私はそれがRが標準エラーを処理する方法のために読んだが、私の問題の解決策を見つけることができない。私は本当にRに精通していますが、Pythonを教えてきました。そのような代替言語ソリューションがあれば、私はすべて耳にします。事前に.bat経由で実行するときにSoX統計をファイルに書き込む
マイ "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"
ありがとう!