在PowerShell中添加数据或修改数据

时间:2016-03-11 20:03:26

标签: csv powershell

我有一个包含用户和日期的CSV文件。 我想运行一个将修改或添加到该列表的powershell脚本。 我有修改部分,但我无法让脚本添加一行。 这就是我所拥有的。 该文件是users.csv,包含以下数据:

Username    Date
Johnson    3/10/16
Smith      12/31/15
Brown      3/9/16

当脚本运行时,我想检查用户名。如果匹配,请更新日期。如果没有匹配则添加新行。 这是我的代码:

获取时间部分

$date=Get-Date -format d

获取用户名

$user=$env:username

导入数据并修改

($CSV= import-csv c:\users.csv -delimiter ',') | foreach {
   if ($_.username -match $user) {
 $_.date=$date
    }
}

输出

Export-csv c:\users.csv -notypeinformation -force

这将更改用户的日期并导出文件。 我无法让代码写入读取所有用户名,如果没有匹配,最后用用户名和日期添加一行。

我对powershell很新。 谢谢你的帮助 查尔斯

1 个答案:

答案 0 :(得分:0)

试试这个:

$date = Get-Date -format d
$user = $env:username
$csv = ipcsv c:\users.csv
$csv | % {if ($_.username -match $user) {$_.date = $date}}
if ($user -notin $csv.username) {$csv += [pscustomobject]@{Username = $user; Date = $date}}
$csv