Nin*_*irl 18 powershell export-to-csv
我有这个代码,我从PowerShell运行.当我在没有export-csv的情况下运行它时,我会在屏幕上获得所有文件夹名称.
dir | select -expand fullname | % { ($_ -split '\')[7]
Run Code Online (Sandbox Code Playgroud)
但是,如果我添加,| export-csv c:\test.txt那么我在文件中看到的不是文件夹名称,我希望就像我在屏幕上看到的那样.
#TYPE System.String
"Length"
"13"
"18"
"20"
"22"
"29"
"21"
"24"
"11"
"17"
"20"
"20"
Run Code Online (Sandbox Code Playgroud)
mjo*_*nor 25
Export-Csv导出对象属性及其值的表.由于你的脚本正在生成字符串对象,并且它们拥有的唯一属性是长度,这就是你得到的.
如果您只想保存列表,请使用Out-File或Set-Content代替Export-Csv.
小智 15
上一个答案确实有效,但如果有人想将其输出到CSV文件中会怎样.
但这不工作:
$str_list = @('Mark','Henry','John')
$str_list | Export-Csv .\ExportStrList.csv -NoType
Run Code Online (Sandbox Code Playgroud)
因为Export-Csv需要对象和输出属性.String []的唯一属性是Length,因此CSV文件仅包含Length.
要解决这个问题,我们需要将String []更改为Object [].最简单的方法是Select-Object.
将每个String放入新Object []的Name属性中,如下所示:
$str_list = @('Mark','Henry','John')
$obj_list = $str_list | Select-Object @{Name='Name';Expression={$_}}
$obj_list | Export-Csv .\ExportStrList.csv -NoType
Run Code Online (Sandbox Code Playgroud)
只是为了重新迭代,Select-Object输出一个可以轻松操作的自定义PSObject.这是非常强大的信息,明智地使用它.
小智 6
这对我有用:
$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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48484 次 |
| 最近记录: |