質問

Windows バッチ スクリプトを使用する既存の手順の高度なバージョンを使用して、ソフトウェアを顧客にリリースする手順を計画しています。このプロセスを改善し、次のアイテムのインストールを自動化したいと考えています。

  • ファイル。ファイルはコピー先にコピーされるだけです。
  • MSSQL データベース。これらをデータベースに対して実行するには、OSQL コマンドを使用すると思います。
  • IIS 仮想ディレクトリ。Windows のサーバー バージョンには通常、コマンドラインから仮想ディレクトリなどを作成するためのツールが含まれる IIS ツールキットがインストールされているので、それを使用します。 「iiscnfg」は、以前に保存した構成ファイルを IIS に挿入するために使用するものだと思います.
  • Windows サービス。当社のサービスには、コマンドラインからサービス自体をインストールする機能があります。

したがって、各アプリケーションのデプロイメントには次のような構造があります。

Releases\
| get-release.bat
| Release1\
| Release2\
| Release3\
| | Content\
| | | Application1\
| | | | bin\
| | | | | Application1.exe
| | | | etc\
| | | | | Application1.config
| | | | db\
| | | | | CreateDatabase.sql
| | | | | CreateTable1.sql
| | | | | CreateTable2.sql
| | | | iis\
| | | | | Application1Web.xml
| | | | pre.bat
| | | | post.bat
| | | | environment.bat
| | | Application2\
| | | Application3\
| | | Application4\
| | Release1.doc

したがって、基本的には、ターミナルと CD を開いて Releases ディレクトリに移動し、次のようなコマンドを実行します。

get-release "Release3"

これにより、Release3 ディレクトリ内のすべてのアプリケーションに対して一連のコマンドが実行され、すべてのファイル、構成がコピーされ、すべてのデータベースと iis 仮想ディレクトリがインストールされます。

ファイルの宛先ディレクトリをバックアップするなど、もう少し機能があります。しかし、今のところそれは関係ありません。

私の質問は、このような展開を行った経験のある人はいるか、間違いがあれば他の人の経験から学べるかどうかです。

残念ながら、MSI パッケージや NullSoft パッケージ (今のところ誰の名前かはわかりません) を使用することはできません。このように行われない場合は手動で行われるため、ここでは本当に自分自身を助けようとしています。

役に立ちましたか?

解決

それでは、どのようにエラーを検出しない、彼らが発生したとき、あなたは何をしますか、あなたが戻って日に行われたすべての変更をロールバックすることができ、および -

私はこのようないくつかのスクリプトを巻いてきた、とに対処するための醜い部分がエラー処理されていますオン。既存のシステムをアップデートしている場合は、新鮮な、ほぼそう単純ではない、インストールやっている場合は比較的簡単。 (あなたはそれが完璧にするたびに動作すると仮定することはありません - 。明日のMSアップデートは結局、今日のスクリプトを壊すかもしれない)。

あなたは合理的にバッチファイル内から行うことができません)。

ちょうどいくつかあります。あなたは、VBスクリプト、Javaのスクリプト、いくつかのPowerShellの呼び出し、または困難なものを処理するために、何か他のものに滑ることができますか?

他のヒント

私は、バッチファイルでこのようなことをやって何の問題が表示されません。ただし、上本当によくなり、それらを解決するかもしれません(、すでに既存のディレクトリなど、すでに既存のファイル、ファイルのバージョンを、ディレクトリの欠落)のマシンとの違いのものをいくつかにいくつかの考えを与える必要があるとして、テストしています機械の様々なています。

これは、インストーラはすでにあなたのため、これらの問題のほとんどを軽減するので、あなたは、インストーラを使用することはできません残念です。インストーラはあなたを与えることを、学習などのベストプラクティスを、本質的には、あなた自身のインストーラをローリングされ、あなたがレッスンの恩恵を受けることはありません。

インストーラなしで行うことができない場合がありますもう一つは、オペレーティングシステムによってロックされているファイルをインストールしています。インストーラは、一時的な場所にファイルをコピーし、レジストリへの「ロードの再起動に」エントリを入れて、その後、コンピュータを再起動するようにユーザーに尋ねることによってこれを扱うます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top