Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Powershell脚本清理csv文件中的某些数据并将结果保存为新的csv文件?_Powershell_Csv - Fatal编程技术网

如何使用Powershell脚本清理csv文件中的某些数据并将结果保存为新的csv文件?

如何使用Powershell脚本清理csv文件中的某些数据并将结果保存为新的csv文件?,powershell,csv,Powershell,Csv,我有一个3列的csv(employees.csv)文件,其中包含员工详细信息的数量'n',在我的第一列中,我有employeeid,格式为11_22$(包含整数和非整数值字符串),这里我想删除所有特殊字符,只保留1122(仅限整数) 在我的第二栏中,我有他们的网址,格式是www.website.com,这里我想用http替换www,也就是我需要http.website.com。在我的第三列中,他们的dob格式为YYYY:MM:DD,我想将其更改为DD:MM:YYYY格式。 最后,我想将结果保存/

我有一个3列的csv(employees.csv)文件,其中包含员工详细信息的数量
'n'
,在我的第一列中,我有
employeeid
,格式为
11_22$(包含整数和非整数值字符串)
,这里我想删除所有特殊字符,只保留
1122(仅限整数)

在我的第二栏中,我有他们的网址,格式是
www.website.com
,这里我想用
http
替换
www
,也就是我需要
http.website.com
。在我的第三列中,他们的dob格式为
YYYY:MM:DD
,我想将其更改为
DD:MM:YYYY
格式。
最后,我想将结果保存/导出到一个新的csv文件。如何使用PowerShell脚本实现所有这些功能?

虽然我不知道为什么您希望网站变成类似“http.website.com”而不是“”,但您可以使用下面的代码来实现

########################################################################
# your input file 'employees.csv" looks like this
########################################################################

"employeeid","website","dob"
"11_22$","www.website.com","2000:04:12"
"22_33$","www.stackoverflow.com","1990:04:12"
"33_44$","www.somothersite.org","1970:04:12"


########################################################################
# after running the code the new file 'newemployees.csv' looks like this
########################################################################

"employeeid","website","dob"
"1122","http.website.com","12:04:2000"
"2233","http.stackoverflow.com","12:04:1990"
"3344","http.somothersite.org","12:04:1970"



$newcsv = @()
Import-Csv -Path $PSScriptRoot\employees.csv | ForEach-Object {
    $newcsv += New-Object -TypeName PSObject -Property ([ordered]@{
        employeeid = $_.employeeid -replace '\D+', ''
        website = $_.website -replace 'www', 'http'
        dob = ([datetime]::ParseExact($_.dob, 'yyyy:MM:dd', [System.Globalization.CultureInfo]::InvariantCulture)).toString('dd:MM:yyyy')
    })
}
$newcsv | Export-Csv -Path $PSScriptRoot\newemployees.csv -Force -NoTypeInformation

请复制并粘贴代码,你试图使工作的问题。因此,这不是一个免费的脚本编写服务。如果您需要一个程序员,您可以尝试,而javascript/PowerShell中的正则表达式解决方案可能看起来很相似,您应该选择哪种方式并删除另一个标记。