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 ...

Foi útil?

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
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top