【问题标题】:Merge Files in Folder with Blank Line in Between Each File's Content合并文件夹中的文件,每个文件的内容之间有空行
【发布时间】:2018-02-12 06:36:33
【问题描述】:

我有一堆文本文件保存在一个文件夹中。我想将它们合并到一个文件中,比如“all.txt”,每个文件的内容之间都有一个空行。 我已经看到使用 bash here 解决了这个问题。

如何使用 Powershell 完成类似的壮举?

【问题讨论】:

    标签: powershell


    【解决方案1】:

    试试这个:

    $sourcePath = "C:\Temp\*.txt"
    $destFile = "C:\Temp\all.txt"
    $encoding = "ASCII"
    
    Remove-Item $destFile -ErrorAction SilentlyContinue
    
    (Get-ChildItem -path $sourcePath) | 
        where-object { -not $_.PSIsContainer } |
        ForEach-Object {
            Get-Content $_; ""
        } |
        Out-File $destFile -Encoding $encoding
    

    不必说。 get-childitem 在括号中,以确保在创建 all.txt 之前收集文件列表。然后使用where-object { -not $_.PSIsContainer } 过滤掉目录,并迭代每个文件。迭代器输出文件内容,后跟一个空行。最后,将整个管道重定向到指定编码的$destFile

    【讨论】:

    • 我试了一下,它给了我一个文件,里面有目录中所有文件的文件名,中间有空行。我想要文件的内容,而不是文件名。
    • 这很奇怪。它对我有用,显示文件名,然后显示文件内容。您是复制/粘贴还是重新输入?
    • 编辑删除文件名。
    • 原来我只是输入了错误的路径。工作顺利;非常感谢!
    • 要读取文件,您必须知道写入文件时使用的字符编码。此代码 assumes ASCII 为每个。文本文件不太可能是 ASCII,尽管提问者必须知道。
    猜你喜欢
    • 1970-01-01
    • 2020-09-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多