Windows 中的 mysql.exe 输出 CSV 文件

标签 mysql windows

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

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

最佳答案

以下命令应该在 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 的全名编写了上述内容。人们通常会分别使用别名 gc 和 % 来表示 Get-Content 和 ForEach-Object。

我经常遇到的一个问题是 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 尝试字符串插值。

关于Windows 中的 mysql.exe 输出 CSV 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48998578/

相关文章:

mysql - 用vim保存一个10GB的大文件

c++ - 居民纹理?

java - 保存时构建和部署

windows - windows native docker有第三方私有(private)注册表吗?

php - 想做产品过滤器,但我得到错误

java - HTTP 状态 500 - javax.el.PropertyNotFoundException : Property 'first_name' not found on type java. lang.String

MySQL 服务器实例永远不会启动。 Mac 操作系统狮子

php - 在 WordPress 中处理自定义表数据

mysql - 无法在 MySQL 触发器中将变量设置为 CURRENT_DATE()

Python:更改 Windows 7 主音量