2014-03-03 9 views
0

나는 오랫동안 지금이 순간에 매우 실망한 시점에 이르렀습니다. 나는 누군가가 올바른 방향으로 나를 가리킬 수 있기를 바랍니다.공백이있는 시작 프로세스 powershell

6 개의 특정 데이터베이스에 대해 mysqldump를 실행해야합니다. 마지막 스폰 완료 후 실행하려면 각 스폰가 필요합니다. 동시에 모든 명령을 실행하면 안됩니다. 기다려야 해.

나는 시도했다이 :

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

어떻게 파일 시스템의 파일에 출력을 리디렉션과 특히, 하나를 명령을 실행 않습니다

$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 

나는이 시도했습니다?

감사합니다.

답변

2

리디렉션은 기능입니다. Start-Process은 데이터베이스 이름과 함께 마지막 인수를 충실히 포함 할 것이고 실제 인수에 >이 전달되어 mysqldump으로 전달되며 이는 결국 >을 어떻게 처리해야할지 전혀 모릅니다.

당신은 아마 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 

같은 뭔가가 스크립트를 계속하기 전에 완료 될 때까지 어쨌든 대기 콘솔 응용 프로그램입니다합니다.

+1

외부 명령을 처리하는 데 유용한 유용한 정보는 여기를 참조하십시오. http://edgylogic.com/blog/powershell-and-external-commands-done-right/ – andyb

+0

대단히 감사합니다! – Mike

+0

@andyb :'- %'는 편리합니다; 아직 그걸 몰랐다. – Joey