140

複数のタスクを連続して実行する Windows コマンド スクリプトを作成しようとしています。ただし、スクリプトの最初のコマンドの後で常に停止します。

その後停止するコマンドは、maven ビルドです (それが関連しているかどうかは不明です)。

各タスクを順番に実行して実行するにはどうすればよいですか?

ソフトウェアのインストールやレジストリの構成などはまったく問題外です。残念ながら、バニラの Windows XP インストールで動作する必要があります。

理想的には、コマンドのいずれかが失敗した場合にスクリプトを中止したいのですが、それは必須ではなく、「あると便利」です。

ありがとう。

4

8 に答える 8

141

別の .bat ファイルを呼び出すときは、呼び出しの前に「call」が必要だと思います。

call otherCommand.bat
于 2008-10-13T15:31:36.183 に答える
45

コマンド間に && 記号を使用して、最初のコマンドが成功した場合にのみ 2 番目のコマンドを実行できます。詳細はこちらhttp://commandwindows.com/command1.htm

于 2008-10-13T15:35:29.483 に答える
25

最初のコマンドが停止している理由がわかりません。並列にできる場合は、次のようなものを試すことができます

start cmd.exe /C 1.bat      
start cmd.exe /C 2.bat
于 2008-10-13T15:44:42.133 に答える
23

Maven テスト スクリプトを実行するためのバッチ スクリプトを作成するというまったく同じ (っぽい) タスクを実行しました。問題は、mvn clean install ... で maven scrips を呼び出すこと自体がスクリプトであるため、call mvn clean install で実行する必要があることです。

動作するコード

rem run a maven clean install
cd C:\rbe-ui-test-suite 
call mvn clean install
rem now run through all the test scripts
call mvn clean install -Prun-integration-tests -Dpattern=tc-login
call mvn clean install -Prun-integration-tests -Dpattern=login-1

call の使用に注意してください。これにより、バッチ ファイルで連続した Maven スクリプトを使用できるようになります。

于 2011-10-21T10:21:16.437 に答える
1

あなたの質問に対する直接的な答えはわかりませんが、これらのスクリプトをたくさん実行する場合は、perl のようなより強力な言語を学習する価値があるかもしれません。Windows 用の無料の実装が存在します (例: activestate、cygwin)。自分のタスクのために最初に努力する価値があることがわかりました。

編集:

@Ferruccio が示唆するように、追加のソフトウェアをインストールできない場合は、vbscript や javascript を検討してください。これらは、Windows スクリプト ホストに組み込まれています。

于 2008-10-13T15:32:25.667 に答える
1

Windows で実行している場合は、次のコマンドを使用できます。

ドライブ:

cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit
于 2010-12-14T07:55:19.520 に答える
0

バッチ ファイルではセミコロンは必要ないことに注意してください。また、call を使用する必要がある理由は、mvn 自体がバッチ ファイルであり、バッチ ファイルが call で相互に呼び出す必要があるためです。そうしないと、呼び出し元に制御が戻りません。

于 2014-07-25T08:32:48.643 に答える