在 powershell 中导入 .csv 并使用新值保存

Import .csv and save with new values in powershell

我有一个 .csv 模板,其中有一个名为 URL 的空列。每次我为它的用户获得价值时,我都想更新它。

这是我目前的情况:

$file = "c:\Users\user\Documents\users.csv"

Import-Csv $file  -Delimiter ',' | % {

     $_.URL = $generated_url ; $_

} | Export-Csv "c:\Users\user\Documents\users_tmp.csv" -Delimiter ',' -notype

这会更新所有具有相同值的单元格。有解决方法吗? 谢谢

我假设您只想更新对应于当前用户的一行。

为此,您必须 select 必须使用 where-object 子句更新的行

param(
 $username
)

$file = "c:\Users\user\Documents\users.csv"

Import-Csv $file  -Delimiter ',' | Where {$_.username -like $username} | % {

 $_.URL = $generated_url ; $_

} | Export-Csv "c:\Users\user\Documents\users_tmp.csv" -Delimiter ',' -notype

要按照下面评论中的要求将 CSV 保存为 excel,最好的选择是像上面那样保存为 CSV。然后使用 Excel COM 库进行转换。

例子

$Excel = New-Object -comobject Excel.Application
$Excel.Visible = $False
$Excel.displayalerts=$False
$Workbook = $Excel.Workbooks.Open($CSVFileName)
$Workbook.SaveAs($Excelfilename,1)
$Excel.Quit()
If(ps excel){
  kill -name excel
}