2017-12-12 60 views
1

LabVIEWでSystem Exec.viを使用してバッチファイルを実行すると、2つのcmdウィンドウが表示されます。 2番目のファイルはバッチファイルのコマンドを実行し、それ以降は閉じますが、最初のファイルは閉じません。 this solutionを使用しようとしましたが、動作しません。最初のcmdを閉じる方法はありますか?LabVIEWコードの実行後にcmdを閉じる方法

LabVIEW code to run external .batch file

cmd windows

P.S.バッチファイルをLabVIEWで実行するのではなく、ダブルクリックするだけで、実行後に2つのcmdウィンドウが閉じます。

+1

なぜ 'start'コマンドを使用しますか?なぜバッチファイルパスを引数として渡すのですか( "System Exec.vi"に渡された最後にビルドされたコマンドラインを確認してください)?それを変更したくない場合は、コマンドラインに '^&exit'を追加してみてください... – aschipfl

+0

親愛なる@aschipflご返信ありがとうございます。実際には、[このリンク](https://forums.ni.com/t5/LabVIEW/how-to-run-exe-file-by-labview/)に従ってSystem Exec.viを使用して外部ファイルを実行する方法ですmp/303952/highlight/true#M158352)(WNMのコメントを参照) – Henrik

答えて

0

これは難しいですが、そのリンクで指示された方向を誤解していると思います。バッチファイルには実行可能ファイルとそのオプションが含まれている必要がありますが、バッチファイルをSystem Exec VIに渡すだけです。私はここで起こっていることは、バッチファイルが2回呼び出されていることを推測しています。最初の呼び出しが依存しているプロセスが2番目の呼び出しによってハイジャックされているので、2番目の呼び出しは通知を受け、最初のコールはハングアップしています。またはそのようなもの。

+0

ありがとうございます。バッチファイルのパスをシステムに渡すだけではなく、バッチファイルを実行するようにシステムに指示しますが、別のアクションだと思います。そして、私はすでに解決策を見つけました。[cmd/x/r start "%s" "%s"]の後に "^&exit"と書くだけでいいです。 "%s"はバッチファイルのパスです。 LabVIEWを使用して外部ファイルを実行する他の方法はありますか?はいの場合は、情報を共有すると問題ありません。 – Henrik

+0

あなたが修正を持ってうれしい!私はそれを行う別の方法があると言いたいのですが、私はいつもSystem Execを使っていますので、わかりません。 – kmc

+0

"<バッチファイルのパス> \ sp_svc.bat.bat"というコマンドラインを与えるだけでよいはずです。 「cmd.exe」はそのままにしておきます。 – srm

関連する問題