2012-06-12 51 views
3

我想从文件输入运行mysql。我发现了以下工作:从PowerShell输入cmd的重定向

CMD/C 'C:\ Program Files文件\ MySQL的\ MySQL的用户-u -Ppassword数据库名称-f < inputfilename.sql'

的问题是, databasename($ database)和inputfilename.sql($ file)是变量,需要进行插值。我还没有找到任何方法来使插值工作。

注意,调用表达和&将无法​​工作,因为PowerShell不会对输入重定向实现<。

有什么建议吗?

回答

-1

它看起来像你封闭在单引号整个命令回答您可能能够使用获取内容。变量不会插入单引号字符串中。试试这个:

cmd /c 'C:\Program Files\MySQL\mysql' -u user -pPassword $database -f < $file 
1

完全相同同样需要为你的。以从其他SO答案像this one例如,这里是我写的:

$binPath = <local MySQL bin path> 
$mySql = Join-Path $binPath "mysql" 
... 
$dosCommand = "$mySql --host=$dbHost --user=$dbUser --password=$dbPassword $dbName --verbose < ""$scriptPath""" 
cmd.exe /c $dosCommand 
+0

其实我现在修复我的代码,并加入双引号,从'... <$ SCRIPTPATH“''到... <” “$ scriptPath”“”',否则当脚本路径包含空格时会出错。 – superjos