0

指定された文字列が$PATH(%path%)で実行可能ファイルを表しているかどうかを確認する方法はありますか?Windowsに移植可能である必要があります。ゼロ以外の場合はプログラムエラーまたはプログラムが見つからないことを意味する可能性があるため、単にそれを呼び出して戻りステータスを確認するという考えは適切ではありません。さて、コードでは、私は以下をしたい

possibleCompilers = ["gcc", "icc", "foo", "bar.exe"]
presentCompiler :: IO String
4

1 に答える 1

7

そのタスクは、を使用して実行できる必要がありますSystem.Directory.findExecutable

possibleCompiler :: IO (Maybe String)
possibleCompiler = check possibleCompilers
  where
    check [] = return Nothing
    check (c:cs) = do
       mbc <- findExecutable c
       case mbc of
         Just _ -> return mbc
         Nothing -> check cs

タイプをに変更しIO (Maybe String)ました。おそらく、候補が見つからないためです。

于 2012-07-13T09:52:54.007 に答える