最近公司网站需要在后台定时请求和更新数据,但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脚本文件,新建一个计划任务定时执行即可。

使用powershell完成定时get任务的更多相关文章

  1. Azure CLI下载Azure Storage Container内的所有文件

    在某些场景下,客户需要把Azure Storage的某一个container内的内容都下载到本地.当然采用PowerShell可以定时的进行下载的动作,但有时客户的环境是Linux或MacOS,这时需 ...

  2. PowerShell定时抓取屏幕图像

         昨天的博文写了定时记录操作系统行为,其实说白了就是抓取了击键的记录和对应窗口的标题栏,而很多应用程序标题栏又包含当时记录的文件路径和文件名,用这种方式可以大致记录操作了哪些程序,打开了哪些文 ...

  3. powershell 定时删除脚本

    powershell  定时删除脚本 $today=Get-Date #"今天是:$today" #昨天 #"昨天是:$($today.AddDays(-1))" ...

  4. PowerShell定时记录操作系统行为

    作为系统管理员,有些时候是需要记录系统中的其他用户的一些操作行为的,例如:当系统管理员怀疑系统存在漏洞,且已经有被植入后门或者创建隐藏账户时,就需要对曾经登陆的用户进行监控,保存其打开或者操作过的文件 ...

  5. Windows任务计划创建计划,定时执行PowerShell命令

    [环境介绍] 操作系统:Windows Server 2012 R2,64位操作系统 PowerShell版本:PowerShell 1.0 脚本位置:C:\BackUp.ps1 启动目录:C:\Wi ...

  6. 创建Windows任务计划定时调用网页执行任务(通过Windows PowerShell的Invoke-WebRequest实现)

    前言:项目中使用RoadFlow工作流,设置超时自动提交功能,自动提交功能已有现成的网页可实现(http://127.0.0.1/WorkFlowRun/AutoSubmit),现需创建Windows ...

  7. [Powershell]导出指定的定时计划任务

    <# .NOTES =========================================================================== Created wit ...

  8. PowerShell 定时输出citrix desktop昨日连接会话

    asnp citrix*$now_date = [datetime]::Today$day2 = [datetime]::Today - [TimeSpan]::FromHours(24)$fiel_ ...

  9. PowerShell 定时刷新查看文件内容

    get-content .\1.txt -ReadCount 0 -Tail 5 -Wait

随机推荐

  1. 洛谷3月月赛div2 题解(模拟+数学+贪心+数学)

    由于本人太蒻了,div1的没有参加,胡乱写了写div2的代码就赶过来了. T1 苏联人 题目背景 题目名称是吸引你点进来的. 这是一道正常的题,和苏联没有任何关系. 题目描述 你在打 EE Round ...

  2. 自定义 Mybatis 框架

    分析流程 1. 引入dom4j <dependencies> <!--<dependency> <groupId>org.mybatis</groupI ...

  3. 使用DEBUG 读取主引导记录

    实验环境:win7 64位(虚拟机) 由于此版本不能直接在命令行使用DOS,需要下载相关软件,参考https://www.cnblogs.com/caishunzhe/p/12823201.html ...

  4. 前端面试基础题:Ajax原理

    Ajax 的原理简单来说是在⽤户和服务器之间加了—个中间层( AJAX 引擎),通过XmlHttpRequest 对象来向服务器发异步请求,从服务器获得数据,然后⽤ javascrip t 来操作 D ...

  5. 001_centos7配置网络动态获取IP地址

    笔者今天刚装完centos7的虚拟机,发现无法获取IP地址,经过网上查询资料,发现centos7是默认没有网络配置的,需要手工配置. 而centos7与centos6不同,没有了config命令,所以 ...

  6. 最全总结!聊聊 Python 发送邮件的几种方式

    1. 前言 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大 ...

  7. 怎么在微信公众号上传PPT?

    我们都知道创建一个微信公众号,在公众号中发布一些文章是非常简单的,但公众号添加附件下载的功能却被限制,如今可以使用小程序“微附件”进行在公众号中添加附件. 以下是公众号添加附件使用“微附件”小程序的教 ...

  8. SSM框架整合Demo

    目前项目大都开始采用SSM结构进行搭建,因为涉及项目比较多,新来的需求都是从现有项目中迁移一份出来进行修改,有的时候两个项目差别还是比较大,并不完全需要原有项目的东西,进行删减也是一项费神费时的事情, ...

  9. JavaScript 通过prototype改变原型的两种方式

    // -------------------- prototype 1 -------------------- function A(){} A.prototype.n = 1 let b = ne ...

  10. ROS 八叉树地图构建 - 给 octomap_server 增加半径滤波器!

    为了在每帧点云中滤除噪声点,选择了半径滤波器,也用高斯滤波器测试过,但是没有半径效果好,这里记录下在 octomap_server 中增加半径滤波器的步骤,并在 launch 中配置滤波器参数. 一. ...