使用空格的Start-Process powershell

时间:2014-03-03 11:23:41

标签: powershell mysqldump start-process

我已经在这里待了很长一段时间,直到我非常沮丧。我希望有人能指出我正确的方向。

我需要为6个特定的数据库运行mysqldump。 我需要每个spawn在最后一个完成后运行。它不应该同时运行所有命令。它需要等待。

我试过这个:

$dump = "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe"
$args = @('-u','databaseUser','-pMySuperAwesomePasswordHere','--single-transaction','--log-error=c:\backups\mysqldump_error.log',"$database > $backupFilePath\$database.sql")
Start-Process $dump $args -Wait

我试过这个:

$cmd = $backupCmd + $database + " > " + "$backupFilePath\$database.sql"
Write-Host $cmd
invoke-expression $cmd | out-null

如何执行命令,尤其是将输出重定向到文件系统上的文件的命令?

谢谢。

1 个答案:

答案 0 :(得分:2)

重定向是 shell 功能。 Start-Process将尽职尽责地将最后一个参数与数据库名称和>包含在传递给mysqldump的实际参数中,而>又不知道如何处理$args = '-u','databaseUser','-pMySuperAwesomePasswordHere','--single-transaction','--log-error=c:\backups\mysqldump_error.log',"$database" & "C:\Program Files\MySQL\MySQL Server 5.6\bin\mysqldump.exe" @args | Out-File $backupFilePath\$database.sql at mysqldump所有

你可能想要像

这样的东西
{{1}}

由于{{1}}是一个控制台应用程序,它将一直等待,直到它完成,然后再继续编写脚本。