Redirect PowerShell中cmd的输入重定向

Redirect PowerShell中cmd的输入重定向,redirect,powershell,input,cmd,Redirect,Powershell,Input,Cmd,我正在尝试使用来自文件的输入运行mysql。我发现以下工作: cmd/c'c:\Program Files\MySQL…\MySQL-u user-pPassword databasename-f

我正在尝试使用来自文件的输入运行mysql。我发现以下工作:

cmd/c'c:\Program Files\MySQL…\MySQL-u user-pPassword databasename-f 问题在于databasename($database)和inputfilename.sql($file)是变量,需要进行插值。我还没有找到任何方法使插值工作

请注意,调用表达式和&将不起作用,因为PowerShell没有为输入重定向实现<


有什么建议吗?

您可能可以使用此类似问题中所回答的Get Content,为什么“看起来您将整个命令括在单引号中。变量不会被插入单引号字符串中。请尝试以下操作:

cmd /c 'C:\Program Files\MySQL\mysql' -u user -pPassword $database -f < $file
cmd/c'c:\Program Files\MySQL\MySQL'-u user-pPassword$database-f<$file
我的需求与你的需求完全相同。以其他答案为例,比如,我写了以下内容:

$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
$binPath=
$mySql=连接路径$binPath“mySql”
...
$dosCommand=“$mySql--host=$dbHost--user=$dbUser--password=$dbPassword$dbName--verbose<”“$scriptPath”“”
cmd.exe/c$dos命令

实际上,我现在正在修复代码并添加双引号,从
..<$scriptPath”
..<“$scriptPath”“”
,否则,当脚本路径包含空格时,我会出错。