在 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
}
我有一个 .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
}