問題タブ [select-object]

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 投票する
4 に答える
1927 参照

powershell - 存在しないプロパティを選択してもエラーなし

存在しないプロパティを選択しようとすると PowerShell にエラーをスローさせたいのですが、代わりに出力として空の列を取得します。例:

によって複数のテキスト ファイルをインポートするスクリプトを作成しましたImport-Csvが、それらのファイルのヘッダーが変更される可能性があり、空の列がシステムに読み込まれてしまいます。

編集:これは、ヘッダーが一致するかどうかを確認する方法です:

それがPowerShellの仕組みであることは知っていSet-StrictModeますが、@Mattが述べたように、ドキュメントは実際には少し誤解を招くものでした。Select-Object「-NoNewImplicitProps」または「-ReadOnlyPipeline」スイッチがあればいいのにと思います:) 。答えてくれてありがとう。

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

powershell - Powershell 選択オブジェクトが空です

FolderPath次のような Exchange メールボックスを取得しようとしています。

これにより、次の出力が得られます。

それは良いことですが、1 つのメールボックスを取得しようとするとFolderPath、空の出力が返されます。

Format-Table は正しい出力を返します。

Select-Objectコマンドレットで正しい出力を取得できますか? 違いはなんですか?

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

powershell - PowerShell でテーブルをカスタム オブジェクトに変換する

特定の形式の変数にテーブルがあります (csv に似ています)

それをオブジェクトの配列に変換する方法に関する提案はありますか? select-object を試しましたが、実際には実行しません。

ありがとう

0 投票する
5 に答える
69275 参照

regex - Select-String からキャプチャされたグループを取得するには?

Powershell (バージョン 4) を使用して、Windows 上の一連のファイルからテキストを抽出しようとしています。

ここまでは順調ですね。これにより、適切なMatchInfoオブジェクトのセットが得られます。

次に、キャプチャがmatchesメンバーにあることがわかったので、それらを取り出します:

これにより、次のことが得られます。

またはリストとして| Format-List

ここで停止します。さらに進んで、キャプチャされたグループ要素のリストを取得する方法がわかりません。

別の を追加してみまし| ForEach-Object -MemberName Groupsたが、上記と同じものを返すようです。

私が得る最も近い| Select-Object -Property Groupsものは、実際に私が期待するもの(セットのリスト)を提供します:

しかし、それらのそれぞれからキャプチャされたグループを抽出することはできません。私| Select-Object -Index 1はそれらのセットの 1 つだけを取得しようとしました。


更新:可能な解決策

追加すること| ForEach-Object { $_.Groups.Groups[1].Value }で探していたものが得られたようですが、その理由がわかりません。そのため、このメソッドをファイルのセット全体に拡張したときに正しい結果が得られるかどうかはわかりません。

なぜ機能しているのですか?

補足として、これ| ForEach-Object { $_.Groups[1].Value }(つまり、2 番目の なし.Groups) は同じ結果になります。

さらに試してみると、パイプを削除することでコマンドを短縮できるよう| Select-Object -Property Groupsです。

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

powershell - PowerShell スクリプトで特定のハッシュテーブル値を選択して他の値をインラインで変更するにはどうすればよいですか

パイピングまたはその他の種類のインライン表記を使用して、ハッシュ テーブル内の特定の値を結果に直接「選択」し、他の値を変更または設定したいと考えています。

ハッシュ表

次のようなハッシュテーブル(率直に言って、オブジェクトのように使用されています)から始めています。

Select-Object コマンドレット (またはそれに類するもの) を使用して、特定のプロパティの値を設定し、他のプロパティを通過させる方法はありますか? 私はこれで終わりたいと思います:

インラインにする必要がない/したくない場合は、次の値を設定するだけですResult

インライン ソリューションの場合、次のForeach-Objectように常に使用できます。

または、部分式で $hash を直接参照するだけです。

ただし、1 つのハッシュ テーブルのみを処理している場合に使用するのは無意味に思えます。Foreach-Objectとにかく通過させたいプロパティを 2 回言及するのは非常に冗長であり、$hash変数が$aSignificantlyLongerHashTableVariableName.

Powershell オブジェクトを使用していた場合...

このようなオブジェクトを使用していた場合:

select-object次のようにコマンドレットを使用します。

その結果、

Hashtable と PSObject にはいくつかの類似した側面 (名前付きの方法で他のものを含むもの) がありますが、私の知る限り、それらは互換性がありません -Select-Object私がここでやろうとしていることにより近い代替手段はありますか?

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

powershell - Select-Object -Unique および MemberTypes

より大きなスクリプトの一部として、インフラストラクチャ内のすべてのサーバーを含むサーバー名の参照リストを作成しています。これを行うには、異なるシステム (AD、SQL など) から取得したサーバー名を持つ 4 つのアレイがあり、次を使用して結合する予定です。

これはほとんどの場合、結果のリストに重複がいくつか見られますが、収集できるものから、SQL $var の .Name プロパティの MemberType が Property であるのに対し、他の変数の Name の MemberType は NoteProperty であるためです。 .

これが重複の原因ですか?もしそうなら、どうすればこれを解決できますか?

ありがとう。

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

powershell - Select-Object を使用してインポートされたサーバーのリストから変数を設定する

$ServerList現在、動作する以下のスクリプトがありますが、30 を超えるサーバーがあり、頻繁に変更されるため、各サーバーからのインポート データで変数を更新する簡単な方法があるかどうかを知りたいと思いました。サーバー パスは同じで、Server.txtすべてのサーバー名を含むファイルを維持できます。PowerShellスクリプトに行を追加することなく、必要に応じて更新できるサーバーのより大きなリストで動作するようにこれを簡素化する方法についてのアイデアはありますか?

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

powershell - Powershell: カスタム オブジェクトを CSV ファイルにエクスポートする - Select-Object を使用して単一のプロパティ値を抽出する

カスタム オブジェクトを作成して CSV ファイルにエクスポートするスクリプトを作成しました。

結果の CSV ファイルのデータ行は次のとおりです。

"@{AgentVersion=9.4.112.22}","@{$ .LastWriteTime=5/6/2016 6:02:32 AM}","@{$ .LastWriteTime=7/5/2016 8:34:01 PM }"

@{<name>=...}不要なラッパーを取り除くことは可能ですか?