1

我正在尝试运行一个脚本来从 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 脚本运行此行?

4

1 回答 1

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
于 2012-10-10T08:08:29.643 回答