0

配列内の各要素に対してオブジェクトの 1 つのプロパティをリストしようとしています。それは問題ありませんが、それらはすべて 1 行に表示されます。$OFS を使用して区切り文字を設定することを読みましたが、それも機能しませんでした。

$filearray =@()
foreach($file in $files)
{
    # There is more logic here to determine what files are included
    $filearray = $filearray + $file  
}
$OFS = "`r`n"
$filearray | Select Fullname
4

5 に答える 5

1

$OFS を使用する方法は、「$filearray」のように二重引用符で囲まれた文字列で配列変数を評価したように、CRLF に設定することです。それでも1行に表示される場合は、@mjolinorが回答のコメントで示唆しているように、 $filearray のタイプを確認してください。

于 2013-02-06T18:20:11.560 に答える
0

この行でタイプを強制してみてください:

[object[]]$filearray = $filearray + $file 

以上

[object[]]$filearray += $file 

リグスタイプを知っている場合([fileinfo[]]多分?)、リグスタイプ配列をより正確に強制することができます

于 2013-02-06T05:58:45.113 に答える
0

$filearray を明示的にキャストして、コード内の他の場所でリセットされないようにします。

[array]$filearray = @()
于 2013-02-05T22:12:51.943 に答える
0

私はこのようなことを試してみます:

Foreach($file in $FileCollection)
{
 #Logic
  if($file #meets condition)
  {
    $filearray = $filearray + $file.Property
  }

}

名前がわかっている場合は、プロパティ値を含む配列をロードします。

于 2013-02-05T21:47:13.623 に答える
0

なぜこのようなものではありません:

$filecollection | where-object  { #condition } | select FullName
于 2013-02-05T22:10:55.747 に答える