windows - 如何使用 curl 检查站点是否存在并在 Windows 中不存在时运行脚本
问题描述
我正在尝试编写一个简单的脚本来检查站点是否还活着,等待 5 秒钟以等待回答,如果站点没有回答,则运行不同的脚本。
使用下一个 curl 命令检查站点即时消息:
curl.exe -Isf https://www.yahoo.com/ | findstr /I /R "200 301"
等待我使用“超时”命令。
不幸的是,我无法很好地运行它。
嗨格哈德,谢谢你的回答。不幸的是,错误级别不能很好地工作,因为当条件为真时,我收到 HTTP/1.1 200 OK(例如),但是当条件不为真时,我没有收到任何答案,除非我使用 -v(附照片)
我的目标是检查站点是否还活着以及它是否还活着 >>> 退出。如果不是 >>> 运行脚本。
- - 真的 - - -
curl.exe -Isf "https://www.yahoo.com/" | findstr /IR "200 301" HTTP/1.1 200 OK
---- 不正确 ---- 不正确
谢谢,我成功地在powershell中创建了它。
解决方案
http/1.1 200
如果您没有从网站获得响应,您似乎只想运行脚本http/1.1 301
只需使用errorlevel
:
curl.exe -Isf "https://www.yahoo.com/" | findstr /IR "200 301"
if not errorlevel 0 down_script.cmd
down_script.cmd
如果站点不可用,您要运行的其他脚本在哪里。
或者,如果您在脚本中运行其他命令,只需goto
curl.exe -Isf "https://www.yahoo.com/" | findstr /IR "200 301"
if not errorlevel 0 goto :SiteDown
goto :eof
:SiteDown
echo here you will do other things if http/1.1 200 or 301 was not met.
此外,我有点不确定您为什么需要该timeout
命令,因为该脚本将等待 curl 的响应,然后再转到下一行。
推荐阅读
- r - 提取特殊字符“/”之间的倒数第二个单词
- excel - 如果文件目录每天更改,如何在excel中制作文件(单元格)的链接?
- android - 如何处理地图
调用 api 时为空对象 - c# - Linq:选择有和没有 ToList()
- azure - Azure 自定义扩展失败并显示错误消息:“已完成执行命令”
- java - 在接收端获取 API 发送方的 IP 地址
- java - NullPointerException 从 FXML 加载场景图,与 Spring 集成
- react-native - React-Native 和 Mapsforge
- android - 使用 Cordova 为本地静态网站提供服务?
- c++ - 匹配特殊字符的字符串