我正在使用的代码如下所示,它只是单独列出文件名和列名:
$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
答案 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, $_
}
}