2013-10-18 13 views
13

私はこのコードをpowershellから実行しています。 export-csvなしで実行すると、画面上にすべてのフォルダ名が表示されます。Export-CSVは長さをエクスポートしますが、名前はありません

dir | select -expand fullname | % { ($_ -split '\')[7] 

しかし、私は| export-csv c:\test.txtを追加した場合、私はファイルではありません私は、画面上でそれを見ると同じように期待されるフォルダ名に以下を参照してください。

#TYPE System.String 
"Length" 
"13" 
"18" 
"20" 
"22" 
"29" 
"21" 
"24" 
"11" 
"17" 
"20" 
"20" 

答えて

16

Export-Csvオブジェクトプロパティとその値の表をエクスポートします。あなたのスクリプトは文字列オブジェクトを生成しているので、それらのプロパティは長さだけです。これがあなたのものです。

リストを保存する場合は、Export-Csvの代わりにOut-FileまたはSet-Contentを使用します。

+0

は魅力のように働きました。早速のお返事ありがとうございます。 –

+0

私も追加しました| out-file "C:\ TEST.TXT" -Append。ありがとう –

9

これまでの回答はうまくいきますが、誰かがCSVファイルに出力しようとしていた場合はどうなりますか? Export-Csvは、オブジェクトと出力特性がかかるので

$str_list = @('Mark','Henry','John') 
$str_list | Export-Csv .\ExportStrList.csv -NoType 




これはませ作業を行います。 String []の唯一のプロパティは長さなので、CSVファイルには長さだけが含まれます。

これを修正するには、String []をObject []に変更する必要があります。最も簡単な方法はSelect-Objectです。


[]は新しいオブジェクトのNameプロパティにそれぞれの文字列を入れて、次のように:

$str_list = @('Mark','Henry','John') 
$obj_list = $str_list | Select-Object @{Name='Name';Expression={$_}} 
$obj_list | Export-Csv .\ExportStrList.csv -NoType 

ジャスト再反復するために、Select-Objectを簡単に操作することができるカスタムPSObjectを出力します。これは非常に強力な情報です。賢明に使用してください。

+0

この行は私のために最も有益でした - $ obj_list = $ str_list | Select-Object @ {Name = 'Name';式= {$ _}}。 – HiTech

5

これが私の仕事:

アウトファイル
$data = @() 
$row = New-Object PSObject 
$row | Add-Member -MemberType NoteProperty -Name "name1" -Value "Test" 
$row | Add-Member -MemberType NoteProperty -Name "name2" -Value 2 
$data += $row 

$data | Export-Csv "Text.csv" -NoTypeInformation 
-1
$output |Select-Object * | Export-Csv 'h:\filename.csv' -NoTypeInformation 
+0

このコードスニペットがどのように問題を解決するか説明する必要があるかもしれません。 –

関連する問題