列出文件名中的所有文件名和第一行(文件头)

时间:2016-07-20 06:41:50

标签: windows powershell

我正在使用的代码如下所示,它只是单独列出文件名和列名:

$list1 = @(Get-ChildItem *.txt |select name)
$list2 = @(Get-Content *.txt -First 1 )
$add = $list1+$list2 > 

所需的输出应为:

Filename1|column1
Filename1|column2
Filename1|column3

Filename2|column1
Filename2|column2
Filename2|column3

Filename3|column1
Filename3|column2

1 个答案:

答案 0 :(得分:1)

我不理解你想要的输出列表(当你谈到列出文件名和第一行时,为什么有多列?)。但是,您可以遍历所有文件,读取第一行并使用格式字符串将它们连接在一起:

Get-ChildItem *.txt | ForEach-Object {
    '{0}|{1}' -f $_.Name, ($_ | Get-Content -Head 1)     
}

修改

Get-ChildItem *.txt | ForEach-Object {
    $filename = $_.Name
    ($_ | Get-Content -Head 1) -split '\|' | ForEach-Object {
        '{0}|{1}' -f $filename, $_
    }
}