mysql -u username -p"password" DbName -h host.com.us < inputFile.sql > outputFile.csv
我使用上面的命令来运行一个将在本地输出文件的查询。该文件仅由制表符分隔。 我看过几个使用shell命令的答案,我需要格式化命令 Windows命令提示符。
答案 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尝试字符串插值。