我想设置一个cmdlet来启动和停止mysql,我正在尝试使用Start-Job。我的Powershell个人资料中有以下内容:
$mysqlpath = "C:\Program Files\MySQL\MySQL Server 5.5\bin"
Function Start-Mysql
{
Start-Job -ScriptBlock { & "$mysqlpath\mysqld.exe" }
}
然而,变量似乎没有在作业命令中扩展?我一定错过了某种范围规则。有人可以建议吗?谢谢!
答案 0 :(得分:7)
您必须使用-argumentlist
参数,请参阅get-help start-job:
start-job -ScriptBlock { & $args[0] }} -ArgumentList @($mysqlpath )
请注意,在V3中,您只需在varname ex:
之前使用前缀using:
Start-Job -ScriptBlock { & "$using:mysqlpath\mysqld.exe" }