【问题标题】:Powershell: Convert text files to csv filesPowershell:将文本文件转换为 csv 文件
【发布时间】:2013-09-27 13:43:13
【问题描述】:
$SearchFolder = "C:\Test\New folder\*.txt" 


$CSVFilePath = "C:\Test\txtfiles" # this doesn't work... 


$File = Select-String -Path $SearchFolder -Pattern new-print-server, default, dymo, zebra -NotMatch | select line, filename



$File | foreach-object {
$_.line = $_.line.replace("^",",")

}


$File | export-csv -path $CSVFilePath -NoTypeInformation


$csv = Get-Content -path $CSVFilePath



$csv | Out-File $CSVFilePath -Encoding utf8


Invoke-Item $CSVFilePath

这是我从网上获得的一个脚本,我想将一个包含文本文件的文件夹转换为 csv 文件。 此代码仅允许我将所有 txt 文件放入一个 csv 文件中。 我想将多个txt文件转换成多个同名的csv文件。

【问题讨论】:

    标签: python powershell csv


    【解决方案1】:

    对于 Select-String,您需要引用 Pattern,例如:

    Select-String -Path $SearchFolder -Pattern 'new-print-server, default, dymo, zebra' -NotMatch | select line, filename
    

    看看这是否能让你更接近:

    $files = Get-ChildItem "C:\Test\New folder\*.txt"
    foreach ($file in $files) {
        $notMatchedLines = $file | Select-String -Pattern 'new-print-server, default, dymo, zebra' -NotMatch | select line,filename
        $notMatchedLines | foreach {$_.line = $_.line.replace("^",",")}
        $notMatchedLines | Export-Csv ([io.path]::ChangeExtension($file.Fullname, '.csv')) -NoTypeInformation -Encoding UTF8
    }
    

    【讨论】:

    • 感谢您的帮助。但它给了我 2 列行和文件名,所有数据都集中在一列(行)中。我不想看到行或文件名.. 我想将 txt 转换为 csv 文件而不做任何更改.. 我知道我发布的脚本有 Select Line,Filename... 抱歉混淆
    • 在这种情况下,将最后一行更改为$file | Export-Csv ...
    猜你喜欢
    • 1970-01-01
    • 2021-03-31
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    相关资源
    最近更新 更多