最近公司网站需要在后台定时请求和更新数据,但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. day12. 闭包

    一.概念 """ 如果内函数使用了外函数的局部变量, 并且外函数把内函数返回出来的过程,叫做闭包 里面的内函数是闭包函数 """ 二.基本语 ...

  2. 【BZOJ2588】Count on a tree 题解(主席树+LCA)

    前言:其实就是主席树板子啦……只不过变成了树上的查询 -------------------------- 题目链接 题目大意:求树上$u$到$v$路径第$k$大数. 查询静态区间第$k$大肯定是用主 ...

  3. 自身写Android组合多个布局的经历

    今天不总结课程了,留着有时间补上. 今天的是ExpandListView,就是可以扩展的列表视图. 今天我做了个总结,然后模仿了扣扣的聊天界面,仅仅写了三个页面而已,用到的xml和活动就不下于10个, ...

  4. 阿里云ECS服务器购买流程

    先说说什么是阿里云服务器ECS?云服务器(Elastic Compute Service,即弹性计算服务,简称ECS)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure ...

  5. 洛谷 P4198 楼房重建

    思路 此题可转化为以下模型 给定序列\(a[1...n]\),支持单点修改,每次求区间单调栈大小 \(n,Q\le 10^5\) 区间单调栈是什么呢?对于一个区间,建立一个栈,首先将第一个元素入栈,从 ...

  6. Vue $nextTick的一个使用场景

    $nextTick 官方解释 在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM 使用场景 在页面上有2个表单元素和2个按钮 btnRequiredFi ...

  7. itest(爱测试) 开源一站式敏捷测试管理平台&极简项目管理,重大升级(接口测试)6.0.0 发布

    itest 简介 itest 开源敏捷测试管理,testOps 践行者,极简的任务管理,测试管理,缺陷管理,测试环境管理,接口测试5合1,又有丰富的统计分析.可按测试包分配测试用例执行,也可建测试迭代 ...

  8. day6 函数

    1.关键字参数     给实参对应的形参   调用函数时 设置关键字参数,形参=实参,把实参固定给那个形参 2.元组的可变(不定长参数)的使用      可变参数可以接收任意数量的普通的形参,并且组包 ...

  9. OAuth2.0分布式系统环境搭建

    好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 介绍 OAuth(开放授权)是一 ...

  10. 根据字典内的键值修改另一个字典的value

    需求:根据传入字典的key1,将value1循环替换到已知字典内相同key的value def dispose_dict(input_parameter,fixed_parameter): for i ...