windows中的CMD命令學習Tips

如何在一個CMD命令中調用其餘多個CMD命令

  • 可使用 start 或者 call,不一樣之處在於:

**一是調用範圍不一樣:**CALL主要用來進行批處理的內部調用如CALL:PEND和一些DOS命令的調用如CALL SET TEST=2,但也能夠調用其餘可執行文件,而START則不能進行內部調用,但其能夠執行基本上全部的外部程序,還能夠執行SHELL,如打開文件夾START "" "%WINDIR%",安裝網絡打印機START "" "\IP\Printer",同時須要注意有無START調用外部程序的區別;html

**二是調用方式不一樣:**CALL實際上調用,因此在CALL另外一個批處理時是在同一窗體進程裏執行,而START是執行,因此在執行另一個批處理時是在不一樣的窗體進程裏執行,也就是說在新的進程裏執行,雖然START能夠加入B參數,但其結果卻徹底不一樣.如咱們使用CALL SET TEST=2和START /B SET TEST=2看似執行的結果相同,可是咱們發現後者有兩個進程,並且在窗體裏要執行兩次EXIT才能退出,因此當咱們使用START來執行一個批處理後最好在被調用的批處理中也加一個EXIT,不然沒法退出被調用的批處理的DOS窗體,可是使用CALL調用時若是在被調用的批處理中存在EXIT則會直接結束原始和別調用的批處理程序,這是一個很是嚴重的問題,建議在被調用的程序中使用goto:eof來取代EXIT;.java

**三是調用結果不一樣:**CALL調用不只能夠把參數或變量傳給被調用的批處理,並且被調用的批處理也能夠設置參數或變量以便回傳,而START只能把參數或變量傳給被調用的批處理,卻不能回傳參數或變量,這一點其實是第二點的延伸.至於此咱們還必須注意使用CALL調用其餘批處理中咱們使用GOTO的時候建議使用不一樣的節來跳轉,不然可能跳轉到原批處理中而不能完整的執行被調用的批處理.windows

簡單來講使用 start ,被調用的命令在不一樣的進程中執行,使用 call ,被調用的命令在同一進程中執行。網絡

參考

關於進程相關

  • 經過 tasklist|findstr "java" 能夠找到進程名爲 java.exe 的全部進程,以下
D:\Users\dev>tasklist|findstr "java"
java.exe                    174592 Console                    1    133,140 K
java.exe                    173624 Console                    1    130,752 K
java.exe                    175448 Console                    1    131,960 K
java.exe                    170280 Console                    1    122,628 K
java.exe                    179032 Console                    1    137,132 K
java.exe                    176544 Console                    1    133,040 K
java.exe                    174636 Console                    1    133,004 K
  • 經過 taskill /F /im java.exe 能夠批量殺死 進程名爲 java.exe 的全部進程,以下
D:\Users\dev>taskkill /F /im java.exe
成功: 已終止進程 "java.exe",其 PID 爲 174592。
成功: 已終止進程 "java.exe",其 PID 爲 173624。
成功: 已終止進程 "java.exe",其 PID 爲 175448。
成功: 已終止進程 "java.exe",其 PID 爲 170280。
成功: 已終止進程 "java.exe",其 PID 爲 179032。
成功: 已終止進程 "java.exe",其 PID 爲 176544。
成功: 已終止進程 "java.exe",其 PID 爲 174636。
  • 經過 netstat -aon|findstr "20011" 能夠找到佔用端口號 20011 的進程id,以下
D:\Users\dev>netstat -aon|findstr "20011"
  TCP    0.0.0.0:20011          0.0.0.0:0              LISTENING       164280
  • 經過 tskill 164280 能夠殺死該進程

參考

相關文章
相關標籤/搜索