mysql.exe在Windows中输出CSV文件

时间:2018-02-26 23:09:55

标签: mysql windows

mysql -u username -p"password" DbName -h host.com.us < inputFile.sql > outputFile.csv

我使用上面的命令来运行一个将在本地输出文件的查询。该文件仅由制表符分隔。 我看过几个使用shell命令的答案,我需要格式化命令 Windows命令提示符

1 个答案:

答案 0 :(得分:1)

以下命令应该在Windows上的PowerShell命令提示符下执行所需操作:

Get-Content inputFile.sql | mysql -u username -p'password' DbName -h host.com.us | ForEach-Object { $_ -replace "\t","," } | Out-File outputFile.csv

请注意,为了清楚起见,我使用PowerShell cmdlet的全名编写了上述内容。人们通常会分别为Get-Content和ForEach-Object使用别名gc和%。

经常让我感到沮丧的是,PowerShell默认使用16位Unicode编码,因此上面示例命令行生成的outputFile.csv将是16位Unicode。 Out-File cmdlet具有-Encoding参数,允许您进行其他选择,例如UTF8。上述命令可以改写为:

gc inputFile.sql | mysql -u username -p'password' dbName -h host.com.us | % { $_ -replace "\t","," } | Out-File -Encoding utf8 outputFile.csv

编辑:将密码分隔符更改为单引号,以防止PowerShell尝试字符串插值。