No cmd.exe, você pode listar as janelas atualmente em execução por seus PIDs e títulos de janela usando:
tasklist /fi "imagename eq cmd.exe" /fo list /v
No entanto, isso não funciona se o cmd estiver em execução no aplicativo Terminal do Windows. Ele lista os PIDs, mas não os títulos, que aparecem como "N/A". Visto que o Windows 11 obriga você a sempre usar o terminal, isso interrompe muitos aplicativos em lote que usam a lista de tarefas para se identificar ou identificar outros aplicativos.
Existe uma maneira de obter uma lista das guias do Terminal do Windows abertas no momento com seus títulos? Como alternativa, existe uma maneira de iniciar o cmd.exe fora do terminal do Windows no Windows 11 sem alterar o padrão?
Eu tentei tasklist /fi "imagename eq WindowsTerminal.exe" /fo list /v
, mas lista apenas uma única janela sem os títulos das guias.
Novo método de lançamento
Este método inicia qualquer programa e obtém o PID e, idealmente, deve ser o padrão daqui para frente:
PID de auto-identificação no arquivo em lote
Embora isso não permita identificar o PID de outros arquivos de lote, esse método permite que um arquivo de lote identifique seu PID:
(Observe que um arquivo temporário deve ser usado porque quando o comando é executado em um loop for, o loop for torna-se o processo pai).
Iniciar arquivo em lote no Conhost.exe tradicional
Você também pode iniciar janelas cmd.exe na janela tradicional, que será compatível com versões anteriores com outros métodos.
cmd.exe não era o emulador original que o Windows Terminal substitui. cmd.exe é um processador de comandos executado no emulador. O emulador tradicional era o conhost.exe.
Como tal, você pode executar um arquivo em lote ou cmd.exe diretamente no conhost:
Você pode iniciar um arquivo de lote em segundo plano com um VBScript da seguinte maneira:
Isso ainda o executa na instância tradicional do conhost.exe e funciona com a lista de tarefas.
Relatório de bug para a Microsoft
Eu também adicionei um relatório de problemas ao hub de feedback "Lista de tarefas dos Blocos de Terminal do Windows de ver os títulos da janela cmd.exe [Breaks Batch Files]"
Usando o PowerShell, você pode obter os IDs desta maneira:
Supondo que você queira listar apenas
cmd
guias. Funciona para mim para processos de Terminal do Windows no Windows 11. Os títulos do Windows parecem estar vazios, provavelmente porque são subprocessos que normalmente não funcionam como janelas separadas, pois são guias.