問題タブ [scriptblock]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
3425 参照

powershell - Powershell ジョブ開始スクリプトブロックが実行されていません

ディレクトリ内の各ファイルをHTMLに変換することを目的とした、かなり単純なコードがいくつかあります。私の問題は、ファイルごとにジョブが正常に作成されても、スクリプトブロックが実行されないことです。

私はpowershellにかなり慣れていないので、これを解決する方法を試してみましたが、理解できないようです.

0 投票する
0 に答える
1491 参照

powershell - 関数のパラメーターとして IF ステートメントを使用するスクリプトブロック

このスクリプト ファイルには以下が含まれています。

私には 2 つの問題があります。

しかし、IFステートメントがなければ、すべて正常に機能しています。では、そのスクリプトブロックを IF ステートメントで送信する方法は?

  1. 変数 $true、$false、および主に $null を使用して $command でバックティックを使用しないようにするにはどうすればよいですか? バッククォートがないと、 true、false、および Nothing に変換されるためです。

ありがとうございました。

PS: このトピックは、パラメーター化されたスクリプト ブロックを使用した PowerShell 関数と同様の投稿を見つけました。これは、scriptblock を文字列として送信し、関数自体でそれを scriptblock 型に変換することを示しています。

編集:私はこの解決策を見つけましたが、あまり良くありません。このようにバックティックを置くよりも簡単な解決策を誰かが知っていますか?

0 投票する
2 に答える
6137 参照

variables - スクリプトブロックの Powershell 展開変数

この記事に従って、スクリプトブロックの変数を展開しようとしています

私のコードはこれを試みます:

エラーを修正する方法:

0 投票する
4 に答える
982 参照

powershell - ScriptBlock が ScriptBlock でないのはいつですか?

かわいそうに言うつもりはありませんが、これが問題です。$env:PSModulePath の下にインストールされた PowerShell モジュール Test.psm1 で定義されている次の 2 つの関数について考えてみましょう。

モジュールをインポートした後、同期関数を実行できます...

...そして、Get-Process からの適切な出力が表示されます。

ただし、非同期バージョンを実行しようとすると...

...そして、その出力を確認します...

...パラメーターを Start-Test 関数に持ち込むだけで失敗し、文字列を ScriptBlock に変換できないと報告します。したがって、-Block $using:BlockScriptBlock ではなく文字列を渡しています。

いくつかの実験の後、回避策を見つけました。$Block パラメーターの型が [ScriptBlock] ではなく [string] になるように Start-Test を変更し、その文字列をブロックに戻して Invoke-Command にフィードすると...

上記と同じコマンドを実行すると、正しい結果が得られます。

using私の最初の例 (ScriptBlock を文字列に変換する) で、スコープは正しく機能していますか? それに関する限られたドキュメント ( about_Remote_Variablesabout_Scopes ) は、ほとんどガイダンスを提供しません。最終的に、$Block パラメーターが [ScriptBlock] として入力されている場合に Start-Test を機能させる方法はありますか?

0 投票する
1 に答える
1931 参照

powershell - ジョブ間で変数を共有する

ユーザーが終了する必要があると判断するまで、バックグラウンド ジョブを実行するはずの powershell スクリプトがあります。バックグラウンド ジョブは、次のスクリプト ブロックです。

ご覧のとおり、ユーザー/呼び出し元が完了したらループ$killSwitchを停止する方法として、ブール値 ( )を渡そうとしています。While私は次のように呼んでいます。

エラーが発生します:

パラメータ 'killSwitch' で引数の変換を処理できません。引数には参照型が必要です。

ジョブの外部から while ループを強制終了できるように、コード ブロックへの参照によって bool を渡すにはどうすればよいですか? 出来ますか?

0 投票する
1 に答える
1221 参照

sql-server - Powershell とスクリプト ブロックを使用した Microsoft SQL Server データベースのリモート リストア

久しぶりの潜伏者、初めてのポスター。ここにいる誰かが、私が困惑している問題を解決しようとして手を貸してくれることを願っています. 基本的に、マルチパート SQL Server データベースをリモート サーバーに復元する Powershell スクリプトを作成しようとしています。変数とパラメーターの使用方法を理解するまで、invoke-commandと機能をいじりました... しかし、非常に興味深い動作がいくつかあることに気付きました。script-block

ここに私のコードがあります:

これにより、次のようなエラーが発生します。

System.Data.SqlClient.SqlError: バックアップ デバイス 'S:\Landing\testdb1.bak,S:\Landing\testdb2.bak' を開けません。オペレーティング システム エラー 123 (ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。)

ただし、同じパスをスクリプト ブロックにハードコーディングすると、次のように機能します。

私が気付いたもう1つの興味深い点は、復元するファイルが1つしかない場合、変数を使用した最初の方法を使用すると機能することです。

うまくいけば、これは誰かにとって意味があります。これを機能させるためにさまざまな方法を試すのに数時間を費やしましたが、理解できないようです。ヘルプやアドバイスをいただければ幸いです。

ありがとう!