2011-06-26 10 views
2

現在、バッチファイルを使用して、プロシージャをロードしたり、スクリプトファイルを実行したり、ストアドプロシージャを呼び出すには、sql sefverユーティリティのcmdutil、dtexec、およびosqlを呼び出します。バッチファイルから移行して、...を使用したいですか?

返される終了コードの値に基づいて、我々は実行する次のステップを決定します。

バッチファイルは私にとっては少し原始的なようですが、ドライバーの.NETプログラムでこの "ジョブコントロールフロー"コードを書くのはもっと嬉しいことですが、ほとんどの開発者は何らかのスクリプト言語これをする。

VB WSHスクリプトを使用することを検討しています。これは、より良い言語構成(たとえば、他の場合)とCOMオブジェクトへのアクセスを提供するように見えますが、それは少し日付が付けられていて、パワーシェル。

は、私の質問はこれです:

ワークフロー制御プログラムを開発するためにコンパイル.NETコード上でPowerShellを使用することの利点/ disadvanagtesは何ですか?私は、Visual Studio IDEを使用して開発環境とコンパイル時間をチェックすると、スクリプトを使用するよりも生産性が向上すると思われます。

私はPSからの私の.NETライブラリのいずれかを試してみて、利用するためにハローワールドアプリをやっていたし、私はPSがちょうど悪いコードの上に吹く印象を受けました。コンパイルされた.NETコードと比較して、十分なエラー処理機能を備えていますか?

+0

バッチファイルを使用すると、特定のエラーコード(int)に応答することができます。あなたは特定の例外に応答することを話していますか? – harpo

+0

はい、特定の例外です。私はまた、PowerScriptを使用すると「悪いコード」が出る可能性が高くなったのかどうか疑問に思っていました。 – ChadD

答えて

5

PowerShellはバッチファイルとは何であなたがC#を使用することができます何かを行うことができます。

は、それは非常に良いスクリプト言語と同様にそれのためにいくつかの素晴らしいのIDEがあります(あなたはRubyやPythonでスクリプトが同様にPowerShellで見つけることができることができる容易さ)です。それは完全にVSでサポートされていないことを考えると、あなたはあなたのような終了コードを使用して、エラー管理を行うことができ、その領域におけるいくつかの努力にも同様PowerShellを使用しPowerGUI VS

があるだろう他の場所でもtry-catch例外やtrapのような他の構造、 throwなど。エラー管理にはPowershellが豊富です。 Add-Typeのようなコマンドレットを使用してPowershellでC#コードを使用することもできます。答えの

主観一部:

私が開発 環境と思われるとVisual Studio IDEを使用して は、スクリプトを使用していること 私はより生産的になるだろうチェックの時間をコンパイルします。あなたがやりたいように見える何

は、スクリプトのための理想的なようです。 PowershellはWindows上でのスクリプト作成に当然の選択です。私は "コンパイル時間のチェック"があなたの生産性を向上させる方法を見ていないので、スクリプト言語はあなたを生産的にする利点があると思いました。

私は本当にあなたが意味するものをPS just blows over bad codeと理解していませんが、Powershellは他の言語や悪いコードとまったく同じであるかどうかは、コードの作成方法によって異なります。

1

IronPythonのを使用する可能性も多分あるのでしょうか?もちろん、PythonをPowerShellに置き換えて、スクリプトを実行しているマシンにインストールすることができれば、もちろんです。あなたはビジュアルスタジオでも素晴らしい開発環境を持っています。

+0

Iron *言語はPowerShellとは違ってチューニングされています。すべてのサービスをボックスで実行して停止するようにしてください。 Get-Service |どこで{$ _。ステータス - 一致 '実行'} | Stop-Service –

1

Powershell/.net devは、開発者の種類によって異なります。おそらくあなたが見ているタイプの仕事のための多くの異なるパフォーマンスではありません。考えられる答えは、.netでコード化し、powershellがwith.netとすべてのメソッドをうまく統合できるように、すべて一緒にpowershellを使用することです。 .netからcomオブジェクトにアクセスするのは、あまり楽しいことではなく、powershellの方が簡単かもしれません。

+0

COMとPowerShellの統合は、そのスイートスポットの1つです。 PowerShellからExcelの数学関数を呼び出す例を次に示します。http://www.dougfinke.com/blog/index.php/2011/04/05/calling-excel-math-functions-from-powershell/ –

1

私はPowerShellで何かできることを言うと答えます。あなたはできる。また、エラー処理は、一般的なフロー制御には十分すぎます。興味深いのは、スクリプト対コンパイル言語に関する質問です。

ツールには基本的な違いがあります。コンパイルされた言語はブラックボックスですが、スクリプトは順応性があります。どちらもそれぞれの開発者にとっても同じように柔軟性がありますが、プログラムをコンパイルして100台のサーバーに展開すると、.exeファイルは開発者を除くすべての人に不変で不透明です。 100台のサーバーにスクリプトを展開すると、100名の管理者はすべてそれを見て、そこから借用し、柔軟かつ新しい方法で利用することができます。

PowerShellを使用すると、私のチームの5人の管理者は、コードが実行されているサーバーでMSDNライセンスを取得しなくても自分のコードを覚えることができます。彼らは借りて、微調整し、何が起こっているのか理解することができます。また、他のチームの管理者は、どのCVSリポジトリをチェックアウトしなくても同じことができます。

普通のコメントで簡単にまとめられた小さなスクリプトをお勧めします。いつか、彼らは実際に誰かによって読まれるかもしれません。 :-)

関連する問題