我已经在这里待了很长一段时间,直到我非常沮丧。我希望有人能指出我正确的方向。
我需要为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
如何执行命令,尤其是将输出重定向到文件系统上的文件的命令?
谢谢。
答案 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}}是一个控制台应用程序,它将一直等待,直到它完成,然后再继续编写脚本。