mysql.exe在Windows中输出CSV文件 mysql-u username-p“password”DbName-h host.com.usoutputFile.csv

mysql.exe在Windows中输出CSV文件 mysql-u username-p“password”DbName-h host.com.usoutputFile.csv,mysql,windows,Mysql,Windows,我正在使用上面的命令运行一个查询,该查询将本地输出文件。该文件仅由制表符分隔。 我已经看到了几个使用shell命令的答案,我需要为Windows命令提示符设置格式命令以下命令应该在Windows上的PowerShell命令提示符下执行您想要的操作: mysql -u username -p"password" DbName -h host.com.us < inputFile.sql > outputFile.csv 请注意,为了清楚起见,我已使用PowerShell cmdlet

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

设置格式命令以下命令应该在Windows上的PowerShell命令提示符下执行您想要的操作:

mysql -u username -p"password" DbName -h host.com.us < inputFile.sql > outputFile.csv
请注意,为了清楚起见,我已使用PowerShell cmdlet的全名写出了上述内容。对于Get Content和ForEach对象,通常分别使用别名gc和%

我经常想到的一个问题是PowerShell默认使用16位Unicode编码,因此上面示例命令行生成的outputFile.csv将是16位Unicode。Out-File cmdlet有一个-Encoding参数,允许您做出不同的选择,例如UTF8。上述命令可以重写为:

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

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

这似乎有效@NanoPish out file在windows命令提示符下不起作用。“splatting运算符'@'不能用于引用表达式中的变量。”@S2d'只能用作命令的参数。若要引用表达式中的变量,请使用“$S2d”。@user3704920我需要更多的上下文来理解您的注释我的道歉。它没有将连接密码识别为字符串。将字符视为命令。啊,同样道歉-如果您将密码用单引号“THES”而不是双引号括起来(“不像这样”)那么PowerShell不应该干扰它-我会相应地编辑我的答案。同样的问题是单引号。Odd.gc'/Users/first.last/Desktop/queryher.sql'|mysql-u'first.last'-p'KS2d&0j89j(@&jsjsjsj!'DBName-h host.com.co.uk |%{$|-replace“\t”,“,”,“}| Out File-Encoding utf8'/Users/first.last/Desktop/Desktop/myfile.csv'
gc inputFile.sql | mysql -u username -p'password' dbName -h host.com.us | % { $_ -replace "\t","," } | Out-File -Encoding utf8 outputFile.csv