使用powershell完成定时get任务
2024-10-09 16:31:20
最近公司网站需要在后台定时请求和更新数据,但PHP毕竟是一种后端语言,不能自动运行,所以整理了几个方法。
1、在前端定时请求页面。
2、使用批处理。
3、使用windows计划任务。
第一种方案必须要打开浏览器,如果关闭了浏览器,可能就会出问题,而且浏览器一直处于打开状态,有点浪费资源。
第二种方案比较简单,直接调用浏览器打开页面就行,但是得不到回调值。
所以我打算使用powershell配合计划任务来完成这个工作。
我们可以使用win+R,然后输入powershell,然后回车来打开ps,不过此方法得不到管理员的权限(在win10下将不能写入文件到C盘),但不影响下面的命令执行。
我使用了一个Invoke-WebRequest命令来执行web request,此命令的详细用法请输入Get-Help Invoke-WebRequest来查看,或者查阅MSDN。
简单用法如下,需要一个Uri的开关,传一个请求地址,像这样:
Invoke-WebRequest -Uri "http://www.7cgcg.com/*/*.php"
得到的输出如下
StatusCode : 200
StatusDescription : OK
Content : ########################################################
记录日期:2017-03-28 14:34:44
更新截图数量:0
没有转码中的视频需要查询. RawContent : HTTP/1.1 200 OK
Vary: Accept-Encoding
Keep-Alive: timeout=5, max=100
Connection: Keep-Alive
Content-Length: 159
Content-Type: text/html;charset=utf-8
Date: Tue, 28 Mar 2017 06:34:43 GMT
Server:...
Forms : {}
Headers : {[Vary, Accept-Encoding], [Keep-Alive, timeout=5, max=100], [Connection, Keep-Alive], [Content-Length, 159]...}
Images : {}
InputFields : {}
Links : {}
ParsedHtml : System.__ComObject
RawContentLength : 159
可以看到,StatusCode为200,Content就是内容了。
然后可以用 Select-Object命令,选出Content这个属性,这时候我们需要一个管道,将前一个命令的内容输入给后面的命令进行处理,这个和批处理是一样的,使用的是 | 符号
Invoke-WebRequest -Uri "http://www.7cgcg.com/*/*.php" | Select-Object -ExpandProperty Content
得到输出如下
########################################################
记录日期:2017-03-28 14:39:00
更新截图数量:0
没有转码中的视频需要查询.
接下来将内容保存到一个文件作为记录即可,这边用的是Out-File命令,注意加上-Append追加写入开关,否则会覆盖文件。
Invoke-WebRequest -Uri "http://www.7cgcg.com/*/*.php" | Select-Object -ExpandProperty Content | Out-File -Append d:\mts_log.txt
完成之后,可以将命令保存为ps1格式的powershell脚本文件,新建一个计划任务定时执行即可。
最新文章
- 从零自学Hadoop(14):Hive介绍及安装
- 将UINavgationController的push改成从左到右
- Centos7上搭建OpenvpnServer——pritunl
- 【转载】James Whittaker:经营成功的测试职业生涯
- My97日期控件 选择日期区间
- Linxu学习之03_LInux文件与目录管理
- Core Animation2-CABasicAnimation
- ruby迭代起基础
- js精要之模块模式
- 推荐一款接口文档在线管理系统-MinDoc
- 移动端效果之Swiper
- Fisher–Yates shuffle 洗牌算法
- spring cloud Eureka常见问题总结
- &; 引用
- weblogic系列漏洞整理 -- 4. weblogic XMLDecoder 反序列化漏洞(CVE-2017-10271、CVE-2017-3506)
- RabbitMQ 设置队列的过期时间
- 使用开源的工具解析erspan流量
- 【python】关于python中模块导入的总结
- kbmMW 5.06.20试用笔记
- php函数substr_replace中文乱码的替代解决方法