2016-11-16 9 views
0

開始するサービスとプロパティファイルが2つあるとします。複数のCMD用のバッチファイルを作成する

ます。config \

が、私はこのようにそれを実行しようとしました\ \ PROGRAM2:\プログラム1 \ビン\とC:\ PROGRAM2の\ビン\ + C

-svc1.cmd 
-svc2.bat 
-svc2prop.properties 

は、Cのようにディレクトリを持っています
start cmd /k call C:\program1\bin\svc1.cmd 
start cmd /k cd C:\program2\ .\bin\svc2.bat .\config\svc2prop.properties 

ローカルCMDを開いて、両方を別々に起動できます。問題は、私がディレクトリC:\ program2 \にいれば、問題なく "。\ bin \ svc2.bat。\ config \ svc2prop.properties"という文を実行できます。

しかし私はバッチファイルを作成するには、まず新しいcmdを開き、svc1.cmdを起動し、別のcmdを開き、C:\ program2 \に移動して。\ bin \ svc2.bat。\ configを実行する\ svc2prop.properties ""ステートメント...しかし何らかの理由でそれは動作しません。

可能な解決方法はありますか?

+1

最初の行に電話がありますか? – LotPings

+0

私はそこにそれを残したとは思わないが、それもそれなしで動作します。 – markedone66

答えて

4

2行目は、必要なディレクトリでプロセスを開始する/Dオプションを使用する必要があります。

start /D C:\program2 cmd /k .\bin\svc2.bat .\config\svc2prop.properties 

(あなたの例では、あなただけの役に立たないcdコマンドに引数をたくさん集めて)

最初の行に現在のディレクトリの問題がある場合は、同じようにしてください:

start /D C:\program1\bin cmd /k call svc1.cmd 
+0

これはうまくいくようですが、今は問題があります。私がやっていることはZookeperを起動して、カフカが欲しいです。今は同時に開始するので、時々kafkaが動物園のバインドより速く起動して問題を起こしているので、他のCMDを遅らせるなどして5秒後に開始する必要があります。私は "スリープ5"を試みました - バッチファイルでこれは5秒間スリープするはずですが、他のラインはまったく実行しません...なぜですか? – markedone66

+1

'sleep 5'はMSYS/Cygwinがインストールされている場合のみ動作します。おおまかに同じネイティブコマンド 'timeout/T 5'をお勧めします。 –

+0

うん、タイムアウトはうまくいきました。ありがとう! :) – markedone66

関連する問題