将CSV转换为txt文件[powershell]

时间:2019-07-05 16:30:09

标签: powershell csv

我有一个Powershell脚本,可以编辑CSV并将其保存。然后,我复制CSV,但将其另存为.txt

有人告诉我,从filename.csv重命名为filename.txt是不正确的方法(我认为这是可行的),但是还有另一种方法可以“正确”将CSV保存为TXT文件

这是我将CSV保存为.TXT的当前方法

$csv = 'C:\Users\xxx\Desktop\xxx Playground\CSV Edit\20190522-Name-Num-Location-hey-hey.csv'
$path = 'C:\Users\xxx\Desktop\xxx Playground\CSV Edit\'
$pathdone = 'C:\Users\xxx\Desktop\xxx Playground\CSV Edit\done'

$txtfile = $date + $lastname + "-" + $lastxxx + "-" + $lastnum + "-" + $lastxxxtwo + "-" + $lastloc + "-" + $newid + ".txt"

# Save txt file as new format

Copy-Item "$csv" -Destination "$path$txtfile"

提醒一下,我的方法可以正常工作并输出一个.TXT,但是有另一种方法可以“正确地”执行而不重命名“ copy-item并将其另存为txt”

$data = Import-Csv -Path $csv -Header 'Stuff','City','Number','InStock'    # or add whatever headers you like
# get the first column as array of values
$column1 = $data.Stuff
# rotate the array values
switch ($column1.Count) {
    1 { Write-Host "Nothing to do here. There is only one row of data.."; break}
    2 { 
        # swap the values
        $data[0].Stuff,$data[1].Stuff = $data[1].Stuff,$data[0].Stuff
        break
    }
    default {
        $newColumn1 = @($column1[-1]; $column1[0..($column1.Count -2)])
        # re-write the first column in the data
        for ($i = 0; $i -lt $newColumn1.Count; $i++) {
            $data[$i].Stuff = $newColumn1[$i]
        }
    }
}

1 个答案:

答案 0 :(得分:2)

CSV 一个遵循格式约定的文本文件。该扩展名仅告诉您期望值,逗号分隔值。 原则上,将其另存为txt并没有错。您不会丢失任何信息。从一开始就不清楚它仍然只是一个带有逗号分隔值的文件。所以请不要头痛:)

相关问题