2016-11-23 5 views
-1

ijを開き、ijにsetup.sqlスクリプトを実行するように指示して、apache derbyデータベースを初期化するスクリプトを作成します。bat-script:プログラムを開き、そのプログラムでコマンドを実行する

私はijを開くことができましたが、スクリプトウィンドウからコマンドをijウィンドウに渡すにはどうすればいいですか?私はこれはLinuxでここの文書で可能だと信じていますが、私が理解する限り、それはWindowsのコマンドプロンプトでは不可能です。

編集:この行を使用してijを開きます。

"C:\Program Files\Java\jdk1.8.0_101\db\bin\ij.bat" 

と私は、この行は、前のコマンドで開いたウィンドウ内で実行させたい:

run 'setup.sql' 
+0

私たちはcoooooooodeを望んでいます:]あなたがこれまでに得たものを見せて、あなたが助けてくれるように簡単にしましょう! – geisterfurz007

+0

コードで更新されました:) – User892313

+0

だから、このij.batは何をしますか?私が正しくうまくいけば、Javaアプリケーションを起動しますか?これはコマンドラインですか、実際のデスクトップアプリケーションですか? – geisterfurz007

答えて

0

それはダムですが、動作するはずです...私のアイデアは、あなただけの他のコードを配置していることは何ですかあなたのバッチファイルに実際にタイプにそれを伝えてそれをウィンドウに入れます。これは通常SendKeysで行われます。キーの詳細here

だから、これはスクリプトを次のようになります。

@if (@CodeSection == @Batch) @then 
@echo off 
start "C:\Program Files\Java\jdk1.8.0_101\db\bin\ij.bat" 
set SendKeys=CScript //nologo //E:JScript "%~f0" 
timeout /t 3 
%SendKeys% "run 'setup.sql'" 
%SendKeys% "{ENTER}" 
Goto:eof 

@end 
// JScript section 
var WshShell = WScript.CreateObject("WScript.Shell"); 
WshShell.SendKeys(WScript.Arguments(0)); 

大規模なルックスではなく、無害である。)

@if (@CodeSection == @Batch) @then 

@end 

は以下からバッチスクリプトを区切るために必要とされていますキーをタイプする魔法。 JScript

@echo offは、コマンドごとにバッチファイルが出力する出力を単にブロックします。
次の行は、別のコマンドラインアプリケーションを起動するバッチファイルを開始します。
変数SendKeysを設定することは100%必要ではありませんが、読みやすくなり、使用しやすくするためにJScript-Section(キーストロークシミュレーション)を有効にするために文字列を保存します。
必要に応じてタイムアウト値を変更します。私はijが始まるのにどれくらいの時間がかかりますか分かりません。
次の行は、文字のコマンド文字を愚かに書きます(心配する必要はありません...あなたは何も見ません!)。
Goto:eofは、バッチスクリプトを停止してからJScriptを読み込んでエラーを投げるために必要です。

私はそれをテストしていませんが、あなたは、このようなコマンドライン自体の上にバッチファイルを起動する必要がありますように100%を確認していない:

start /min <your batch-file here> 

これはに最小化ファイルを開始しますそれが正しいウィンドウに入力されることを確認してください。

お気軽にご質問ください。

+0

を与えるのスクリプトは、次の手順を実行しているようだ: - 開いているウィンドウ1とウィンドウ2 - IJ場所 に窓2をナビゲート - ダウン3 から窓1つのカウントを聞かせて - で「setup.sql」を書きますウインドウ1でカウントダウンが終了した後のウインドウ2 ウインドウ2はIJ.batを起動せず、そのウインドウを含むフォルダに移動します。 私はもう一つの回避策を見つけました。 ありがとうございました!とても有難い! :) – User892313

+0

私はばかです! Enterを忘れて...すぐにそれを編集します。カウントダウンは、スクリプトに配置されたタイムアウトの結果です。それを取り出すと、カウントダウンが離れます。 ijが開始されたことを確認するだけでした – geisterfurz007

関連する問題