(八)PowerShell 查询MySql数据导入CSV文件

  1. 传送门读取CSV文件→Import-Csv
  2. 在导出数据到CSV时,有一个容易忽视的地方,导致导出一直失败,之前一直以为是自己写法问题,查了很多资料,但是我看了自己的写法和官网示例 12:将哈希表转换为 CSV并没有什么太大差距,最后发现是Powershell在循环时,如果直接用【循环对象.项目名】赋值,导致最后输出数据不对,必须要将【循环对象.项目名】赋值给临时变量,再使用临时变量导出,就不会出问题,这个不知道原因是什么,以前做perl,还是java之类的都没有这种问题,可能习惯了别的语言的写法,导致在这里卡了很长时间,上代码。
#Export-Csv:将对象转换为一系列字符分隔的值 (CSV) 字符串,并将字符串保存到文件中。
#System.Management.Automation.PSCustomObject
#https://blog.csdn.net/charles542307299/article/details/132090591
$username = 'root'
$password = ConvertTo-SecureString -String "123456" -AsPlainText -Force
$credential = New-Object -TypeName "System.Management.Automation.PSCredential" -ArgumentList $username,$password
#开启连接
Open-MySqlConnection -Server "localhost" -Port "3307" -Credential $credential -Database "test"    
#数据查询 
Write-Output "----------------数据查询start--------------------"
$data = Invoke-SqlQuery -query "SELECT * FROM User"
Write-Output $data
Write-Output "----------------数据查询  end--------------------"
$output = @()
# foreach ($_ in $data) {
#     $id = $_.id
#     $username = $_.username
#     $password = $_.password
#     $csvObject = [pscustomobject]@{
#         id = $id
#         username = $username
#         password = $password
#     }
#     $output += $csvObject
# }
$data | ForEach-Object{
    $id = $_.id
    $username = $_.username
    $password = $_.password
    $csvObject = [pscustomobject]@{
        id = $id; 
        username = $username;
        password = $password
    }
    $output += $csvObject
 }
#关闭连接
Close-SqlConnection
$output | Export-Csv -Path ./output.csv

3.执行

PS /Users/sixdog/Documents/PowerShell> ./test.ps1
----------------数据查询start--------------------

id username password
-- -------- --------
 1 张三     223456
 3 李四     123456
 4 王五     123456
 5 赵六     123456
19 冯七     123456
----------------数据查询  end--------------------

PS /Users/sixdog/Documents/PowerShell> 

4.生成csv文件及内容
生成csv文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值