首页 > 解决方案 > 如何使用 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中创建了它。

标签: windowspowershellbatch-file

解决方案


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 的响应,然后再转到下一行。


推荐阅读