O gerenciador de tarefas do Windows possui uma coluna chamada Linha de Comando que mostra o comando que iniciou a tarefa especificada, com todas as opções e parâmetros, por exemplo:
test.exe -V -A 127.0.0.1 -P 6062
Agora eu tenho que identificar uma determinada tarefa que está escutando em uma determinada porta e / ou foi chamada com uma certa combinação de switches. Meu objetivo é fechar a tarefa selecionada, mas não outras, portanto, se houver várias test.exe
tarefas em execução, não posso simplesmente fechar todas as tarefas retornadas por:
tasklist /fo csv /nh /fi "imagename eq test.exe"
Infelizmente, parece que nem tasklist
nem pslist
( aqui ) é capaz de retornar o campo Linha de Comando . Como posso superar esse problema?
windows
command-line
batch
task-manager
István Zachar
fonte
fonte
netstat -aon | grep \.0:6062
a porta 6062 e a última coluna seja o PID do seu programa. Não tenho certeza se isso é suficiente para você.tasklist /FI "PID eq <PID>"
daria o seu executável novamente.process explorer
da Sysinternals pode mostrá-los na GUI. Portanto, a informação deve estar em algum lugar.Respostas:
Que tal este:
E se você fizer isso, também receberá o ProcessId:
wmic
também tem uma opção para enviar para CSV. Então:Nota: Se você receber um erro com o último (
Invalid XSL format (or) file name
), precisará copiarcsv.xml
de%WINDIR%\System32\wbem\en-US
para%WINDIR%\System32\wbem
. Você pode ler sobre esse bug aqui .Você também pode usar o PowerShell:
fonte
wmic
resolve o problema, e isso conclui o dia. :)