Powershell递归搜索以选择.txt文件,然后将所有文件的内容输出到单个.txt文件中

时间:2018-11-21 13:14:26

标签: powershell pipe get-childitem

任何帮助都将不胜感激。

我有一个文件夹,其中包含30多个文件夹,每个文件夹都有一个.txt文件,我可以使用以下文件进行搜索:

  

Get-ChildItem -Filter * .txt-递归

我想读取发现的每个.txt文件的内容,并将其内容输出到桌面上的新.csv文件中,该文件还包括要显示的每个.txt文件内容的目录。

问题是双重的,

  1. 如何使用管道和powershell命令读取/显示文件中的所有单词。

  2. 如何创建将同时输出目录名称和.txt文件内容的csv数据。

我已经可以将结果传送到:

  

c:\ desktop \ test.csv-编码ascii -noTypeInformation

1 个答案:

答案 0 :(得分:1)

以下脚本读取特定目录中的所有.txt文件,将完整的文件名和路径以及文件内容存储到数组中,并将其保存为csv。

$csvOut = @()
Get-ChildItem -LiteralPath C:\temp -Filter *.txt -File -Recurse | foreach {

    $fileData = @{
        "File"=$_.FullName;
        "Content"=(Get-Content -LiteralPath $_.FullName -Raw)
    }
    $csvOut += (New-Object psobject -Property $fileData)
}

$csvOut | Export-Csv -LiteralPath "C:\temp\csvout.csv" -NoTypeInformation