os/exec を使用した場合とコマンドラインから実行した場合では不可解な結果が異なる

王林
リリース: 2024-02-14 12:45:09
転載
953 人が閲覧しました

使用 os/exec 和在命令行执行之间出现令人费解的不同结果

php エディター Zimo は、PHP で os/exec 関数を使用したときと、コマンド ラインでコマンドを実行したときに発生する不可解な異なる結果の分析を提供します。実際のアプリケーションでは、コマンド ラインでは正常に実行できるコマンドが、os/exec 関数を使用すると同じ結果が得られないという状況に遭遇することがあります。この状況では、多くの場合、私たちは混乱し、解決策を見つけるのが難しくなります。この記事では、その理由を分析し、os/exec 機能をよりよく理解し、適用するのに役立つ解決策を提供します。

質問内容

パッケージ os/exec を使用して golang でコマンドを実行するプログラムを書きました。

リーリー

プログラムを実行すると、次のように出力されます: err: 終了ステータス 1

しかし、Windowsのコマンドラインでコマンドtaskkill /f /im vintgui.exeを実行すると。出来た。

os/exec パッケージを介してコマンドを実行すると、windows コマンド ライン (同じユーザーと同じ権限を使用して) コマンドを直接実行する場合と結果が異なるのはなぜですか?プログラムを修正するにはどうすればよいですか?

解決策

解決策は、

command オブジェクトの stderr プロパティを使用することです。これは次のように行うことができます: リーリー

状況に応じて、単に変更してください

リーリー ###に### リーリー

すべてのパラメータを 1 つの文字列に結合しないでください。

以上がos/exec を使用した場合とコマンドラインから実行した場合では不可解な結果が異なるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート