使用Powershell修改CSV内容

时间:2013-12-09 12:00:12

标签: powershell csv

我有一个CSV文件, Devices.csv ,包含 IP地址,设备名称,序列号,MAC地址,用户名

Devices.csv 的所有行中的用户列已预填充值[未知]

代码......

{Import-CSV Devices.csv | Where-Object {$_.IPAddress -eq '192.168.2.124'} | Select-Object -last 1 | FT  IPAddress, devicveName, SerialNumber,  MACAddress, User -AutoSize }

....输出

IPAddress     deviceName     SNumber     MACAddress   User
---------     -----          -------     ----------   ----
192.168.2.124 ComputerA      1ABCDEFG    00xxYYbbCCdd [Unknown]   

我希望能够将[Unknown]文本替换为我从其他来源检索到的用户名。我是否可以使用powershell更新Devices.csv中此行的用户列,并保持CSV文件的其余部分完好无损?

谢谢,Brian

2 个答案:

答案 0 :(得分:1)

试试这个:

$otheruser = '...'

Import-Csv Devides.csv | % {
  if ($_.User -eq '[Unknown]') { $_.User = $otheruser }
  $_
} | Export-Csv Divices_modified.csv -NoTypeInformation

答案 1 :(得分:1)

$csv = Import-CSV Devices.csv
$csv | Where-Object {$_.IPAddress -eq '192.168.2.124'} | Select-Object -Last 1 | ForEach-Object {$_.User = $user}
$csv | Export-Csv Devices.csv -NoTypeInformation