windows - PowerShell [[wmiclass]] Win32\_Process.Create () og vent derefter på batchfilen for at fuldføre

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg har planlagt et SQL Server agent job, der udfører et PowerShell script, der kalder en batch proces til at starte. Men når PowerShell udføres, venter det ikke, at batchfilen skal fuldføres, inden du går videre til næste jobtrin. Hvad kan jeg gøre for at få det til at 'vente' for at batchfilen skal færdiggøre, inden du går videre?


dette er kommandoen:


  ([WMICLASS]"\SERVERROOTCIMV2:win32\_process").Create("cmd.exe /c E:BatchFilesFirst\_Batch\_File.bat") 

Bedste reference


Metoden Create returnerer ProcessId af den proces, den opretter. Du kan tjekke, om processen er afsluttet med Get-Process


$process = ([WMICLASS]"\SERVERROOTCIMV2:win32\_process").Create("cmd.exe /c E:BatchFilesFirst\_Batch\_File.bat")
while ((Get-Process -Id $process.ProcessId -ErrorAction SilentlyContinue) -ne $null) {
    write-host "waiting"
    sleep 2
}