Domanda

Sto cercando di scrivere uno script batch che gli errori se la porta 1099 è già in uso.

Purtroppo devo scrivere in uno script batch DOS (non riesco a installare nulla).

So che posso stampare il PID del processo monopolizzavano porta 1099 manualmente:

netstat -aon | findstr ":1099"

Ma io voglio essere in grado di eseguire quel comando in uno script batch e uscire dallo script con un messaggio di errore se questo comando ha alcun output.

Credo che a una spinta ho potuto reindirizzare l'output in un file temporaneo e verificare le dimensioni di esso, ma che sembra davvero hacky ...

È stato utile?

Soluzione

 netstat -an | FINDSTR ":1099" | FINDSTR LISTENING && ECHO Port is in use && EXIT 1

È possibile utilizzare && in uno script batch per eseguire un comando solo se il comando precedente ha avuto successo (sulla base il codice di uscita / ERRORLEVEL). Questo permette di visualizzare un messaggio ed esce solo se la stringa che si sta cercando si trova nella produzione di netstat.

Inoltre, si vuole guardare in modo esplicito per LISTENING porte.

FINDSTR supporta le espressioni regolari in modo da poter anche effettuare le seguenti operazioni per abbreviare la riga di comando:

netstat -an | findstr /RC:":1099 .*LISTENING" && ECHO Port is in use && EXIT 1
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top