2017-03-29 27 views
1

バッチプロセスを呼び出すPowerShellスクリプトを実行するSQLserverエージェントジョブをスケジュールしています。ただし、PowerShellを実行すると、バッチファイルが完了してから次のジョブステップに移るまで待機しませんでした。移動する前にバッチファイルが完了するのを待つようにするにはどうすればよいですか?PowerShell [wmiclass] Win32_Process.Create()はバッチファイルが完了するまで待ちます

これはコマンドです:

([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat") 
+0

で終了したかどうかをチェックすることができ、これは、その内容は、我々が対象から除外されており、これは、SQLサーバーとして実行するバッチファイルを呼び出しますメソッドによってスケジュールされたエージェントジョブも提供されません。ソリューションは、自分自身からの関連情報を手にしておくことをお勧めします。 – Compo

答えて

1

Create方法は、それが作成するプロセスのProcessIdを返します。そのプロセスは、あなたがPowerShellスクリプトから単一現用回線を提供してくれましたGet-Process

$process = ([WMICLASS]"\\SERVER\ROOT\CIMV2:win32_process").Create("cmd.exe /c E:\BatchFiles\First_Batch_File.bat") 
while ((Get-Process -Id $process.ProcessId -ErrorAction SilentlyContinue) -ne $null) { 
    write-host "waiting" 
    sleep 2 
} 
+0

ありがとう!これはトリックでした! – BIDevLe

関連する問題