script de comandos do Windows para mensagem de erro de impressão se porta em uso
-
21-08-2019 - |
Pergunta
Eu estou tentando escrever um script em lotes que erros se porta 1099 já está em uso.
Infelizmente tenho de escrevê-lo em um script em lotes DOS (eu não posso instalar nada).
Eu sei que eu posso imprimir o PID do porto hogging processo de 1099 manualmente:
netstat -aon | findstr ":1099"
Mas eu quero ser capaz de executar esse comando em um script em lotes e sair do script com uma mensagem de erro se esse comando tem qualquer saída.
Eu suponho que em um impulso eu poderia redirecionar a saída para um arquivo temporário e testar o tamanho dele, mas que parece realmente hacky ...
Solução
netstat -an | FINDSTR ":1099" | FINDSTR LISTENING && ECHO Port is in use && EXIT 1
Você pode usar &&
em um script em lotes para executar um comando somente se o comando anterior foi bem sucedida (com base em seu código de saída / ERRORLEVEL
). Isso permite que você exiba uma mensagem e sair somente se a seqüência que você está procurando é encontrada na saída do netstat.
Além disso, você quer olhar explicitamente portas LISTENING
.
suportes FINDSTR
expressões regulares para que você também pode fazer o seguinte para encurtar a linha de comando:
netstat -an | findstr /RC:":1099 .*LISTENING" && ECHO Port is in use && EXIT 1