24

私は installshield を使用しており、インストール プロセスの一部として実行したいバッチ ファイルのグループがあります。installshield から各バッチ ファイルを実行する代わりに、すべてのバッチ ファイルを実行する 1 つのバッチ ファイルを作成したいと考えています。

私が抱えている問題は、呼び出し元のバッチ ファイルが他のディレクトリから 2 つ上にあることです。バッチ ファイルが他のファイルを呼び出そうとすると、必要なリソースが見つからないため、実行に失敗します。バッチ ファイルの 2 つのディレクトリから実行されると、何らかの理由で、呼び出し元のバッチ ファイルの相対パスが使用されているようです。私の仮定は正しいですか?

私が呼び出しているバッチ ファイルの 1 つは、h2 データベースを開始するためのバッチ ファイルで、呼び出しは次のようになります。

call h2\bin\h2.bat

コマンド プロンプトで /h2/bin ディレクトリに移動すると、h2.bat は正常に実行されますが、呼び出し元のバッチ ファイルから実行すると、このエラーが発生します。

エラー: メイン クラス org.h2.tools.Console が見つからないか読み込めませんでした

バッチ ファイルの呼び出しパスを使用せずに、あるバッチ ファイルを別のバッチ ファイルから呼び出すにはどうすればよいですか?

4

6 に答える 6

10

ディレクトリを設定してみてください:

cd ht\bin\
call h2.bat
cd %HOMEPATH%
REM  just reset to where ever you were before.

それでもうまくいかない場合は、パスに C:// プレフィックスを使用してみてください。それはうまくいくかもしれない/うまくいかないかもしれません。幸運を!

于 2013-05-23T17:32:09.113 に答える
1

許可がないからかもしれません。M は同じ問題に直面しており、次のような解決策を見つけました。プロパティよりもタスクを右クリックします。プロパティで [全般] タブをクリックし、[ユーザー グループまたはユーザー] をクリックして適切なユーザーを選択します。

または、別のバット ファイルを作成して、バット ファイルを呼び出し、そのファイルをスケジュールします。次のようにbatファイルを作成できます-

メモ帳を開き、元のbatファイルのパスを指定してから、次のような名前のbatファイルを呼び出します-

D:

cd "E:/ABC/FirstJob/main/"

main_run.bat を呼び出す

このファイルを .bat 拡張子で保存します。

于 2016-12-21T08:49:56.127 に答える
0

現在の .bat ファイルが C ドライブで実行されており、D: ディレクトリに配置された .bat ファイルを実行し、次に最初の .bat 書き込みで実行するとします。

D:
cd "D:/folder/folder2/"
call batFile.bat
于 2016-02-29T09:49:10.383 に答える