PowerShell - 使用参数执行MySQL

时间:2012-10-10 05:43:42

标签: mysql powershell

我正在尝试运行一个脚本来从MySQL输出一些记录,但是当我尝试运行脚本它显示MySQL帮助文件时,我认为参数没有正确传递给程序。

这是脚本

$path_to_MySQL = "C:\xampp\mysql\bin\mysql.exe"

$param1 = "-h XXX"
$param2 = "-D XXX"  
$param3 = "-u XXX"
$param4 = "-pXXX"
$param5 = "-e ""SELECT 'Test';"""

$params = @($param1, $param2, $param3, $param4, $param5)

write-host $path_to_MySQL $params

&$path_to_MySQL $params

现在输出到显示屏,

C:\xampp\mysql\bin\mysql.exe -h XXX -D XXX -u XXX -pXXX -e "SELECT 'Test';"
ERROR 2005 (HY000): Unknown MySQL server host ' XXX'

第一行是因为write-host行。

但是,当我从此处复制输出并在控制台中直接运行时,它会正确运行。 (即我有正确的主机详情)

如何使用PowerShell脚本运行此行?

1 个答案:

答案 0 :(得分:0)

您使用什么作为服务器名称?请注意错误消息:Unknown MySQL server host ' XXX',引用主机名为' XXX'(请注意空格),而不是'XXX'

Powershell中的一个问题是,双引号"字符串被评估,而单引号'字符串则不是。因此,如果你的主机名包含特殊字符,那么Powershell可能会搞乱它们。也就是说,

$foo="foo"

# This will print
# foo walked in bar
"$foo walked in bar"

# This will print:
# $foo walked in bar
'$foo walked in bar'

尝试这样的解决方法,

$param1 = '-h XXX'
$param2 = '-D XXX'
$param3 = '-u XXX'

并且

&$path_to_MySQL $param1 $param2 $param3