Luaで「os.execute」を実行すると、コンソールがすぐにポップアップし、コマンドを実行してから閉じます。しかし、標準のLuaライブラリのみを使用してコンソール出力を取得する方法はありますか?
これが欲しいと思います http://pgl.yoyo.org/luai/i/io.popen io.popen。しかし、常に組み込まれているわけではありません。
あなたがio.popenを持っているなら、これは私が使うものです:
function os.capture(cmd、raw) local f = assert(io.popen(cmd、 'r')) local s = assert(f:read( ' * a ')) f:close() rawの場合、s end s = string.gsub(s、' ^%s + '、' ')[を返します。 ____。] s = string.gsub(s、 '%s + $'、 '') s = string.gsub(s、 '[\ n\r] +'、 '') return s end
Io.popenがない場合、おそらくpopen(3)がシステムで利用できず、深いヨーグルトに入っています。しかし、すべてのunix/mac/windows Luaポートにはio.popenがあります。
Luaについては特に知りませんが、通常は次のようにコマンドを実行できます。
comd >comd.txt 2>&1
出力とエラーをファイルcomd.txtにキャプチャし、言語ファイルI/O関数を使用してそれを読み取ります。
言語自体が標準出力とエラーをキャプチャする機能を備えていなかった場合は、この方法で行います。