我想向现有CSV Powershell添加一个增量编号

我想向现有CSV Powershell添加一个增量编号,powershell,csv,Powershell,Csv,作为Powershell的新手,我设法编写了一个脚本。 这已经准备了一个csv,我知道,下面的文件预览: "Documentnummer","Versie","Status","Geocode","IDS datum","Documentgroep (Omsch)","Documenttype (Wrd)","Tekeningnummer" "550165","C","AB","008","19.07.2013","Themalagen OI","KS","008KS10" "550164",

作为Powershell的新手,我设法编写了一个脚本。 这已经准备了一个csv,我知道,下面的文件预览:

"Documentnummer","Versie","Status","Geocode","IDS datum","Documentgroep (Omsch)","Documenttype (Wrd)","Tekeningnummer"
"550165","C","AB","008","19.07.2013","Themalagen OI","KS","008KS10"
 "550164","I","AB","008","26.03.2016","Themalagen OI","KS","008KS09"
 "550163","D","AB","008","19.07.2013","Themalagen OI","KS","008KS08"
这种情况持续了大约2000行。 现在,我使用它来下载文件,下载时,我使用相同的csv创建文件名。 问题是,我想创建一个额外的列和标题,例如“numer”,每行包含一个递增的数字

Nummer 0001, 0002, 0003, ...., 0050, ...., 0105, ...., 2547
我总是想要四位数,所以看起来像这样:

"Nummer","Documentnummer","Versie","Status","Geocode","IDS datum","Documentgroep (Omsch)","Documenttype (Wrd)","Tekeningnummer"
"0001","550165","C","AB","008","19.07.2013","Themalagen OI","KS","008KS10"
"0002","550164","I","AB","008","26.03.2016","Themalagen OI","KS","008KS09"
...
"0108","550163","D","AB","008","19.07.2013","Themalagen OI","KS","008KS08"
我尝试了两种方法,但都失败了,创建了一个增量编号,将其添加到csv中,创建了一个具有正确编号的csv,并合并了两个csv

谢谢你的帮助! (对荷兰标题名称表示抱歉)

在Windows 7 x64上使用Powershell 3.0

更新,我用来合并两个文件的代码:

$drawinfo = Import-Csv $downloads\${drawtype}_DIR_AUTO_FILTER.csv | ConvertTo-Csv -NoTypeInformation
$numberinfo = Import-Csv "$BBKSDIR\Related files\Incremental_number.csv" | ConvertTo-Csv -NoTypeInformation
第一个包含批量数据,第二个只包含数字

[array]$allinfo = "{0},{1}" -f $numberinfo[0],$drawinfo[0]
[array]$allinfo += "`r`n{0},{1}" -f $numberinfo[1],$drawinfo[1]
$allinfo
这里我首先得到两个文件的标题行,在第二行我想得到所有其他行,但我只得到第二行(第一个数据行)

执行$allinfo现在让我:

“Nummer”、“Documentnummer”、“Versione”、“Status”、“Geocode”、“IDS数据”、“Documentgroep(Omsch)”、“Documenttype(Wrd)”、“Tekeningnummer” “0001”、“550165”、“C”、“AB”、“008”、“2013年7月19日”、“马来西亚国际”、“KS”、“008KS10”


类似这样的东西应该会给你一个如何做的提示:

 $csv = Import-Csv "D:\temp\test.csv"
 $global:i = 0; $csv | Select-Object @{ Name = 'Nummer'; Expression = { $global:i.ToString("0000"); $global:i += 1 } }, * | Export-Csv "D:\temp\test2.csv"
这是基于计算的属性。

试试这个

$script:cpt=0
import-csv "C:\temp10\report.csv" | 
            select @{N="Nummer";E={$script:cpt++;"{0:d4}" -f $script:cpt}}, * | 
                        export-csv "C:\temp10\report2.csv" -NoTypeInformation

你能分享你到现在为止尝试过的任何东西的代码吗?正如你在更新中看到的,我有点接近了(或者我想成为O:)。数字被添加为第一列,第一个数据行正是我想要的,第一列的数字是四位数字,但其他所有行都应该如此。对此,我深表歉意。我假设这是一个输入错误,下面的回答有什么区别?不是真正的区别,不要冒犯你,只是另一种方法,格式化nummer,使用$script vs$global,++优于+=在性能上,我更喜欢-format以获得更好的可视性,但是-notype信息很重要(你已经忘记了这一点)