システム実行関数から複数のユーザー入力を使用してコマンドを呼び出す

更新しました May 27, 2025

使用製品

ソフトウェア

  • LabVIEW

問題

Pythonスクリプトなどの外部コマンドを実行したいのですが、このコマンドでは、ユーザーがコマンドプロンプトに対話的に複数回入力する必要があります。すべての入力が事前にわかっている場合、システム実行関数を使用してLabVIEWからこのコマンドを実行することは可能ですか?

解決策

はい、システム実行関数を使って複数の入力を必要とするコマンドを実行できます。例えば、1回の実行で2つのユーザー入力を必要とする以下のPythonスクリプトをご覧ください。

def get_user_choice():
    while True:
        user_input = input("Please enter 'Yes' or 'No': ").strip().lower()
        if user_input in ['yes', 'no']:
            return user_input
        else:
            print("Invalid input. Please try again.")

# Usage
choice = get_user_choice()
print(f"You selected: {choice.capitalize()}")
choice = get_user_choice()
print(f"You selected: {choice.capitalize()}")

このスクリプトは get_user_choice() 関数を 2回呼び出していることに注意してください。そのため、このスクリプトの実行を終了するには、ユーザーは「Yes」または「No」、またはその他の文字列を少なくとも 2回入力する必要があります。

このスクリプトを Windows コマンド プロンプトで手動で実行すると、次の結果になります。

LabVIEW で同じ結果を得るには、システム実行関数を使用して、各入力の間に改行 (\n または ASCII 0xA) を入れて、ユーザー入力を「標準入力」端子に接続します。

注: この画像はLabVIEWスニペットで、プロジェクトで再利用できるLabVIEWコードが含まれています。スニペットを使用するには、画像を右クリックしてコンピュータに保存し、ファイルをLabVIEWダイアグラムにドラッグしてください。

 

上記の VIを実行すると、次の結果が得られます。