找尋被占用的port

這問題發生在想執行某些程式卻發生port占用的情形,又不曉得兇手是誰。

其實透過netstat就可以解決這個問題了。首先是透過-b的參數:

netstat -nab
  TCP    [::]:49153             [::]:0                 LISTENING
  eventlog
 [svchost.exe]
  TCP    [::]:49154             [::]:0                 LISTENING
  Schedule
 [svchost.exe]
  TCP    [::]:49155             [::]:0                 LISTENING
 [lsass.exe]
  TCP    [::]:49168             [::]:0                 LISTENING
 [services.exe]
-b參數會顯示出占用的process,但如果加上findstr :port去過濾,會因跳行的關係無法看到兇手是誰。
因此有另外一個方法是透過-o加tasklist指令:
netstat -nao | findstr :80
  TCP    0.0.0.0:80             0.0.0.0:0              LISTENING       5932
看到pid後,再使用tasklist找process名稱:
tasklist | findstr 5932
Skype.exe                     5932 Console                    1    184,628 K
使用方法二的目的是為了讓你的batch比較好寫。

友藏內心獨白: 程式應該要寫得越簡單越好!