4

unrar x archivenameHaskell内からコマンドを実行したいとします。

それを行うための最良の方法は何ですか?コマンドの終了コードを取得するにはどうすればよいですか?コマンドが正常に終了した場合は、アーカイブを削除したいのですが、そうでない場合は削除しません。

4

2 に答える 2

3

ライブラリには、必要なprocessことを実行する関数readProcessWithExitCodeがあります。何かのようなもの:

(e,_,_) <- readProcessWithExitCode "unrar" ["unrar", "x", "-p-", "archivename"] ""
if e == ExitSuccess then ... else ...

コマンドなど、他にも多くの解決策がありますsystem。好きなものを選んでください。

于 2011-08-26T17:44:39.587 に答える
3

からの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" 
于 2011-08-26T17:45:03.347 に答える