使用了windows下的findstr、tasklist、taskkill、echo、for命令。
在windows的命令列下,怎麼殺掉某程序(比如,殺掉所有的mspaint.exe畫圖程序)
**:
@echo off
echo '===begin==='
for /f "tokens=1,2 delims= ," %%a in ('tasklist /m ^| findstr "mspaint.exe"') do (
echo name=%%a, pid = %%b, and will kill it.
taskkill /pid %%a
)echo "====end===="
pause
解釋:
括號裡的命令可能得到很多行文字,對於每一行文字,按照空格和逗號(delims= ,)進行擷取,取出來第1個字段送給%a,第2個字段送給%b,然後送到do裡面,然後列印一句話,然後用taskkill命令把這個程序號對應的程序殺掉。
命令echo:echo後面跟隨的語句,不需要用引號引起來。
下面的命令可以看到,datetimestr這個時間戳,不論在引號裡面還是外面,都正常顯示了,反倒是引號,也跟著輸出了。
@echo off
set datetimestr=%date:~0,4%/%date:~5,2%/%date:~8,2% %time:~0,2%:%time:~3,2%:%time:~6,2%
echo %datetimestr%, bat script.
echo '%datetimestr%, bat script.'
echo %datetimestr%",bat script."
echo %datetimestr%, bat script. > d:\test_echo.log
命令tasklist:自己用tasklist /?檢視幫助。執行如下命令並檢視log檔案。
tasklist /m > d:\tasklist.log
命令findstr:自己用findstr /?檢視幫助。執行如下命令並檢視log檔案。
tasklist /m | findstr "svchost.exe" > tasklist_findstr.log
命令taskkill:自己用taskkill /?檢視幫助。
命令for:用for /?檢視幫助。
通過幫助文件我們知道,for有一種使用方法:
for /f ["options"] %variable in ('command') do command [command-parameters]
幫助文件中有乙個例子非常好,請先檢視一下:
for /f "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k
對於for /f 的【in ('command')】部分:
其中的command需要替換成乙個命令語句,比如【tasklist /m | findstr "mspaint"】,但是替換時需要注意:
①命令需要用單引號引上②豎線(|)之前需要乙個轉義字元^,為【'tasklist /m ^| findstr "mspaint.exe"'】。
對於for /f 的【do command [command-parameters]】部分:
do後面可以直接跟乙個命令,也可以在do後面寫一對小括號,將許多語句寫在小括號裡面。
注意:do後需要有乙個空格,空格後是左括號;即,do和左括號在一行,但不能寫在一起。
@echo off
echo '===begin==='
for /f "tokens=1,2" %%a in ('tasklist /m ^| findstr "svchost.exe"') do (
echo name=%%a
echo pid==%%b
echo name=%%a, pid=%%b
echo *****====
)echo "====end===="
pause
對於for /f 的【%variable】部分:
建議寫【%a】,如果要寫在.bat檔案裡,需要多加乙個%號,為【%%a】。不過,當然可以寫%i或%x等。
對於for /f 的【["options"]】部分:
建議閱讀幫助文件中的例子。
我們檢視了【tasklist /m | findstr "svchost.exe" > tasklist_findstr.log】生成的檔案的格式。生成的log檔案中,各個字段之間是用空格和逗號分隔的。
又【delims=*** - 指分隔符集。這個替換了空格和跳格鍵的預設分隔符集】,所以,我們需要寫成【delims= ,】才行。
又【tokens=x,y,m-n - 指每行的哪乙個符號被傳遞到每個迭代的 for 本身】,並且【%variable】寫的是【%a】,那麼:
寫成【tokens=1,2,3,4,5】那麼會將第1~第5個字段傳到迭代的for本身(就是傳到do裡面),用%a~%e獲取第1~第5個字段的值。
寫成【tokens=1,3-5】那麼會將1和3~5送到do裡面。其中,1對應%a,3對應%b,4對應%d,5對應%e。
寫成【tokens=2,*】那麼會將2和2後面的字段送到do裡面去。其中2對應%a,2後面的所有資料對應%b。
Windows檢視埠並殺
開始 執行 cmd 進入命令提示符 輸入netstat ano 即可看到所有連線的pid,之後在任務管理器 右鍵電腦螢幕的狀態列即可找到 中找到這個pid所對應的程式。如果任務管理器中沒有pid這一項,可以在任務管理器中選 檢視 選擇列 1.檢視所有連線的pid 開始 執行 cmd 輸入netsta...
windows平台下如何用Python殺程序
參考 python語言 windows平台下如何用python殺程序 from 這段 來自於乙個很簡單的場景 在python中調乙個程式。給這個程式設定乙個timeout 假如一段時間程式還沒有返回,就殺掉這個這個新開的程序。本來以為我肯定不是第乙個遇到這個問題的人,但是網上搜了好久都沒找到完整的辦...
Windows下的Apache Tomcat連線
win32 apache2.0.49.zip,在壓縮包中的modules可找到mod jk2.so 將mod jk2.so拷到以下兩個目錄 tomcat home conf apache home modules 將apache home conf 下的httpd.conf作以下修改和新增 修改 一...