0

私はこれをしばらく探していましたが、正しい検索用語を使用していないだけなのか、それとも答えを見つけるのが本当に難しいのかわかりません.

私がやろうとしているのは、バッチ ファイルからゲーム サーバー用の新しい Windows サービスを作成し、ゲーム サーバーのコマンド ラインで 2 つのコマンドを実行していくつかの処理を実行する別のバッチ ファイルを 30 分以上実行するタスクを作成することです。ファイル作業。

具体的には、私が運営を支援しているゲーム コミュニティ用に Bukkit を使用して Minecraft サーバーを実行しており、特に (サービスのように) 停止するように指示しない限り、常に稼働していることを確認したいと考えています。Bukkit はバッチ ファイルから直接実行され、独自のコマンド ライン機能が実行されます。

この種のものをサービスとして実行できると言われていますが、コマンドラインはビューや対話から隠されます。これは私のクエリの 2 番目の部分です。すべてのワールド ファイルとユーザーデータ ファイルをバックアップ ディレクトリにコピーし、7zip してディレクトリを削除する便利な小さな backup.bat ファイルがあります。唯一のことは、Minecraft は常にワールドのリージョン ファイルを開いて常に書き込みたいということです。つまり、そのまま実行するとマップが破損する可能性があります。これを補うために、サーバーで「save-off」コマンドを実行してファイルフックを一時的に無効にし、バックアップを実行し、バックアップが終了したらすぐに「save-on」を実行して、データを失うことなくゲームを続行できるようにする必要があります。 .

この 2 つ目の問題について知りたいのは、バッチ ファイルを介してゲーム サービスとやり取りすることは可能ですか、それともそのためのアプリケーションを作成する必要があるかということです。後者の場合、どのように正確にそれを行うのですか? 私は中程度の C++ の知識 (大学での 2 回目の OO-C++ コースまで) を持っており、どうしても必要な場合は別の言語を学ぶことができます。

簡単に言うと、2 つの質問があります。1. BAT ファイルを Windows サービスとして実行することは可能ですか、またその方法は? 2. BATファイルを介して上記のサービスとやり取りする方法、および可能でない場合は、どのような種類のアプリケーションを作成する必要がありますか(チュートリアルへのリダイレクトまたはチュートリアルの作成が機能します)。

事前にすべての助けに感謝します!

4

1 に答える 1

0

古い質問、ユーザー アカウントはもう SO でアクティブに見えませんが、同様の問題があるためにこれに出くわした場合:

Bukkit Minecraft サーバーについて話しているので、Bukkit の「Essentials」プラグインに目を向けます。OPが要求することを正確に実行するバックアップ機能が含まれるようになりました。つまり、保存を停止してファイルを破損せずに操作できるようにし、スクリプトを起動してから再開します。

スクリプトはバックアップ スクリプト (リンクされたページで提供されている例) にすることができますが、世界のファイルに対して任意の操作を実行するために使用できます。

于 2012-01-19T16:11:52.440 に答える