2017-05-18 3 views
-1

UIオートメーション中に特定のサーバーボックスでジョブを実行するコードが正常に動作しています。ノードjsに相当するコードが必要です。ノードjsでプロセスを実行

ProcessStartInfo startinfo = new ProcessStartInfo(); 
      startinfo.FileName = string.Format("schtasks.exe"); 

      string command = string.Format(" /run /s {0} /tn \"{1}\"", "serverbox", "Jobname"); 
      startinfo.Arguments = command; 
      startinfo.CreateNoWindow = true;//Not much important 
      startinfo.UseShellExecute = false;//Not much important 
      startinfo.WindowStyle = ProcessWindowStyle.Hidden;//Not much important 
      Common.Log.Info("Executing Command - " + command); 
      Process proc = new Process(); 
      proc = Process.Start(startinfo); 

「argsオプションの値が正しくありません」というエラーをスローするnode.jsのコードは以下のとおりです。

function executeProcess() { 
    var command = new String(" /run /s {0} /tn \"{1}\"", "serverbox", "jobname"); 
    exec(command, function (err, stdout, stderr) { 
    console.log("Running job"); 
    callback(err, stdout, stderr, data) 
}); 

}

+0

https://github.com/tjanczuk/edge –

答えて

1

文字列コンストラクタは引数を1つだけ取ります。 はあなたのエラーはここにある:

var command = new String(" /run /s {0} /tn \"{1}\"", "serverbox", "jobname"); 

エラーの使用を避けるためにstring templatesというJavaScript機能:

const command = ` /run /s "${serverbox}" /tn "${jobname}"` 
+0

VARコマンドは=新しい文字列( '/実行/ s $ {"serverbox1"}/tn $ {"job1"} '); コールバック(エラー、stdout、stderr、データ) }});それでも私は "argsオプションの値が正しくありません"というエラーを受け取りました。このschtasks.exeはどこにありますか?このコードにはどうすればいいですか?私はノードjを初めて使うので、完全なコードで返信してください。 – Nalu

+0

なぜ新しい文字列が欲しいですか?ちょうど ''を使用してください。 –

+0

'const a = 'qweqwe'のような単純なものから始めましょう。 exec(\ 'echo $ {a} \'、コールバック) '。次に、必要なプロセスを実行するコマンドの複雑さを増やします。また、 'console.log(str)'や 'console.dir(obj)'を使って値を監視することもできます。 nodejsには 'Process.Start(startinfo) 'が存在しないので、すべての引数は' command'に入ります。 –

関連する問題