$ErrorActionPreference = 'Stop' $dir = 'D:\ROA\ROAFACTURARE\COMUN\utile\Teste\facturare_unificat' $prg = Join-Path $dir 'probe_s8_surse.prg' $log = Join-Path $dir 'out\probe_s8_surse.log' $vfp = 'C:\Program Files (x86)\Microsoft Visual FoxPro 9\vfp9.exe' $viu = Get-WmiObject Win32_Process -Filter "Name='vfp9.exe'" | Where-Object { $_.CommandLine -like '*probe_s8_surse*' } if ($viu) { "Ruleaza deja (PID " + ($viu.ProcessId -join ',') + ")"; exit 1 } Set-Location $dir Remove-Item (Join-Path $dir 'probe_s8_surse.FXP') -ErrorAction SilentlyContinue Remove-Item $log -ErrorAction SilentlyContinue $p = Start-Process -FilePath $vfp -ArgumentList '-A', '-T', $prg -PassThru "lansat PID " + $p.Id $null = $p.WaitForExit(240000) if (-not $p.HasExited) { "ATARNAT dupa 240s - omor instanta" Get-WmiObject Win32_Process -Filter "Name='vfp9.exe'" | Where-Object { $_.CommandLine -like '*probe_s8_surse*' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force } } if (Test-Path $log) { Get-Content $log } else { "Log inexistent: $log" }