unrar x archivename
Haskell内からコマンドを実行したいとします。
それを行うための最良の方法は何ですか?コマンドの終了コードを取得するにはどうすればよいですか?コマンドが正常に終了した場合は、アーカイブを削除したいのですが、そうでない場合は削除しません。
unrar x archivename
Haskell内からコマンドを実行したいとします。
それを行うための最良の方法は何ですか?コマンドの終了コードを取得するにはどうすればよいですか?コマンドが正常に終了した場合は、アーカイブを削除したいのですが、そうでない場合は削除しません。
ライブラリには、必要なprocess
ことを実行する関数readProcessWithExitCode
があります。何かのようなもの:
(e,_,_) <- readProcessWithExitCode "unrar" ["unrar", "x", "-p-", "archivename"] ""
if e == ExitSuccess then ... else ...
コマンドなど、他にも多くの解決策がありますsystem
。好きなものを選んでください。
からのreadProcessWithExitCode
関数System.Process
がその仕事をするはずです。
import Control.Monad
import System.Directory
import System.Exit
import System.Process
main = do
(exitCode, _, _) <- readProcessWithExitCode "unrar" ["x", "archivename"] ""
when (exitCode == ExitSuccess) $ removeFile "archivename"