Analógico do Windows de $ 1 (PID do último processo iniciado)

3

Como entrar no Windows PID do último processo iniciado usando o WScript.Shell ou similar?

Eu sei como iniciar um processo e obter seu PID:

Set oExec = WshShell.Exec( program )
Set pid = oExec.ProcessID

Agora o problema é que o programa é outro lote (ou pode ser o VBScript). O lote inicia um programa real que o PID gostaria de obter.

No Linux (shell script) é muito fácil de fazer. apenas pid=$!

Mas o que posso fazer no Windows?

    
por Dime 27.07.2011 / 09:57

1 resposta

3

Acho que não há equivalente a $! No Windows.

Caso deseje recuperar o PID do terceiro processo, você pode procurá-lo usando o WMI. Um exemplo disso pode ser encontrado aqui (apenas procurando e exibindo as informações) ou aqui (pesquisando e matando o processo).

Se o executável do terceiro nome não for conhecido, talvez você queira usar um Objeto de trabalho que agrupa vários processos em um objeto. E você poderia facilmente matar todos eles de uma só vez com TerminateJobObject .

Veja MSDN para obter uma visão geral rápida ou esta pergunta no StackOverflow .

No entanto, não sei se esses métodos podem ser usados no VBScript.

    
por 27.07.2011 / 12:23