使用powershell完成定時get任務


 

最近公司網站需要在后台定時請求和更新數據,但PHP畢竟是一種后端語言,不能自動運行,所以整理了幾個方法。

1、在前端定時請求頁面。

2、使用批處理。

3、使用windows計划任務。

 

第一種方案必須要打開瀏覽器,如果關閉了瀏覽器,可能就會出問題,而且瀏覽器一直處於打開狀態,有點浪費資源。

第二種方案比較簡單,直接調用瀏覽器打開頁面就行,但是得不到回調值。

所以我打算使用powershell配合計划任務來完成這個工作。

 

 

我們可以使用win+R,然后輸入powershell,然后回車來打開ps,不過此方法得不到管理員的權限(在win10下將不能寫入文件到C盤),但不影響下面的命令執行。

我使用了一個Invoke-WebRequest命令來執行web request,此命令的詳細用法請輸入Get-Help Invoke-WebRequest來查看,或者查閱MSDN。

簡單用法如下,需要一個Uri的開關,傳一個請求地址,像這樣:

1 Invoke-WebRequest -Uri "http://www.7cgcg.com/*/*.php"

得到的輸出如下

 1 StatusCode        : 200
 2 StatusDescription : OK
 3 Content           :
 4 
 5                     ########################################################
 6                     記錄日期:2017-03-28 14:34:44
 7                     更新截圖數量:0
 8                     沒有轉碼中的視頻需要查詢.
 9 
10 RawContent        : HTTP/1.1 200 OK
11                     Vary: Accept-Encoding
12                     Keep-Alive: timeout=5, max=100
13                     Connection: Keep-Alive
14                     Content-Length: 159
15                     Content-Type: text/html;charset=utf-8
16                     Date: Tue, 28 Mar 2017 06:34:43 GMT
17                     Server:...
18 Forms             : {}
19 Headers           : {[Vary, Accept-Encoding], [Keep-Alive, timeout=5, max=100], [Connection, Keep-Alive], [Content-Length, 159]...}
20 Images            : {}
21 InputFields       : {}
22 Links             : {}
23 ParsedHtml        : System.__ComObject
24 RawContentLength  : 159

 

可以看到,StatusCode為200,Content就是內容了。

然后可以用 Select-Object命令,選出Content這個屬性,這時候我們需要一個管道,將前一個命令的內容輸入給后面的命令進行處理,這個和批處理是一樣的,使用的是 | 符號

1 Invoke-WebRequest -Uri "http://www.7cgcg.com/*/*.php" | Select-Object -ExpandProperty Content

得到輸出如下

1 ########################################################
2 記錄日期:2017-03-28 14:39:00
3 更新截圖數量:0
4 沒有轉碼中的視頻需要查詢.

接下來將內容保存到一個文件作為記錄即可,這邊用的是Out-File命令,注意加上-Append追加寫入開關,否則會覆蓋文件。

1 Invoke-WebRequest -Uri "http://www.7cgcg.com/*/*.php" | Select-Object -ExpandProperty Content | Out-File -Append d:\mts_log.txt

 

完成之后,可以將命令保存為ps1格式的powershell腳本文件,新建一個計划任務定時執行即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM