2016-11-16 3 views
-1

バッチファイルがcreateProcess()関数によって作成されたプロセスによって実行されると仮定します。ファイルのパスは、createProcess()関数の最初の引数として与えられます。どのように私はこのバッチファイルに引数を渡すことができますか?createProcess()関数で作成されたプロセスによって呼び出されるバッチファイルに引数を指定する方法はありますか?

lpCommandLineパラメータを使用して引数を渡すと、パラメータがスペースを含む文字列であれば問題はありませんか? たとえば、「abc = 20 xyz = 10」および「def = 5 ggg = 15」は、渡される2つの引数です。私の質問は、文字列内にスペース( "")を入れることは問題になります。どうすれば2つの引数を渡すことができますか?

+0

これは、バッチ関連の問題のような音はありません。あなたのバッチにこの行を含めてargs 'Echo Args:%*&Pause'を表示してargsがあるかどうかを確認してください。そうでなければ、C/C++ /関連するものです。 ' – LotPings

+0

コマンドラインはlpCommandLineパラメータを介して渡されます。空白で区切られた引数を、そのパラメータに渡す文字列に連結するだけです。それが問題なのか、バッチファイル自体のパラメータをどう扱うべきか分からない場合は、これは非常に異なる質問です。あなたは明確にするべきです。これは役立ちます:http://stackoverflow.com/questions/25919451/use-createprocess-to-run-a-batch-file –

+0

lpCommandLineパラメータでは、パラメータとして文字列のセットを渡すことができます。たとえば、 "abc = 20 xyz = 10"と "def = 5 ggg = 15"が渡される2つの引数です。私の質問は、文字列内に空白( "")があることが問題になります。どうすれば2つの別々の引数として渡すことができますか? @RetiredNinja – RRR

答えて

0

は、あなたの代わりに_spawnlp使用することができます

if (_spawnlp(_P_WAIT,"C:\\myfile.bat","myfile.bat","arg1-as-text","arg2-as-text",NULL) != 0) 
    { 
    reportError("Error running myfile.bat"); 
    } 
+0

createProcess()を使って引数を渡す方法を知りたかったので、 – RRR

関連する問題