5

とにかく、powershellスクリプトを実行せずにその正確性をテストすることです。UNIXでも同様のことができることは知っていますが、powershellの同等のものを見つけることができません。

基本的に私が持っているのは、各スクリプトがルールに関連付けられているスクリプト リポジトリです。ルールが適用されるとスクリプトが実行されますが、スクリプトをリポジトリに配置する前に、そのスクリプトが有効であることを確認する必要があります。

ありがとう。

残念ながら、-whatif コマンドでは十分ではありません。エンジン ルールが起動した場合にスクリプトを起動する C# ランタイム エンジンからチェックしたいスクリプトの構文です。スクリプトを起動する前に、ルールから IList 値を書き込んでから起動します。しかし、それが構文的に正しいことを確認する必要があります。そうでなければ、ルールライターに頼ってそれらが正しいことを確認する必要があります。エンジンダウン。エンジンはシックス シグマのアップタイム用に設計されたエンタープライズ クラスの製品であるため、それはできません。

それを行う方法は、v2 lib である this を使用することだと思います。

http://msdn.microsoft.com/en-us/library/system.management.automation.parseexception(VS.85).aspx

ScriptBlock を作成し、その周りに try catch を配置して、ParseException をキャッチする方法があると思います。誰かがそれを行う方法を教えてもらえますか。これは真の課題になりつつあります。

ありがとう。

ねえ、私はMSの人(彼はsharepoint pmです)と話し、彼はpowershellの人の一人と話しました.Powershell v1には実行せずにスクリプトの構文をチェックする実際の方法はない. したがって、-whatif フラグが最も近いと思いますが、残念ながら静的チェッカーではありません。v2 では、Automation.PsParser クラスの Tokenize メンバーを使用して、入力ストリームをトークン化する方法があります。これは、PS grammes に従ってスクリプトをトークン化するため、それがクラップアウトする場合は、クラップ スクリプトです。質問は、v2 にはまだリリース日がありません。

手伝ってくれてありがとう。ボブ。

4

4 に答える 4

4

あなたが望むのは prolly whatif / confirmです。Unix ワールドからの直接移植。

于 2009-04-16T13:12:55.863 に答える
1

では、機能的な正確性または構文上の正確性を求めていますか?

機能的には、テスト ケースとテストする環境を作成する必要があります。

構文的には、powershell の静的コード チェッカーを探しています。

于 2009-04-16T13:07:15.487 に答える
0

多くの PowerShell コマンドには、-whatifパラメーターが用意されています。

于 2009-04-16T13:51:28.610 に答える
0

「有効」があなたにとって何を意味するかを定量化する必要があると思います。それはあいまいな用語であり、多くのことを意味する可能性があります。

perl の構文チェックのようなものを意味する場合、PowerShell V1 では、PowerShell スクリプトに完全に相当するものはありません。V2にもそのための何かがあるかどうかはわかりません。

あなたが与える説明は、単なる構文/「実行しますか」タイプチェック以上のものを望んでいるように聞こえます。@JoHannes Rossellが言うように、それは些細なことではなく、あなたがしていることに非常に固有のものです。

他の回答の前述の「whatif/confirm」メソッドは、スクリプトではなく PowerShell コマンドレットでのみ機能します。これらは、構文チェックではなく、そのコマンドレットが行うことを示しています。

ジェームズ

于 2009-04-16T16:35:51.450 に答える