我遇到了一个奇怪的问题,我的外部 IP 每隔 2、3 分钟就会更改一次。
我有一个动态 DNS 服务,我通过批处理文件中调用的 curl 任务调度程序来更新它。
我正在调试该过程,为此我需要将日期和时间以及 CURL 的每个响应记录(附加)到文件中。
我可以回显到文件,但不知道如何附加日期/时间和 curl 响应。
环境是ws2012。
提前致谢!以下是我目前掌握的代码片段
curl -k http://freedns.afraid.org/dynamic/update.php?xdfSDASDQW232FFD
ECHO I ran! I really did! >c:\TestBat.log
答案1
批量解决方案,附加到日志文件。更改>>
为>
以覆盖:
@echo off
set logfile=.\curl.log
echo [ %date% %time% ]>>%logfile%
curl -s -k http://freedns.afraid.org/dynamic/update.php?xdfSDASDQW232FFD>>%logfile%
答案2
我建议完全跳过 curl,改用 Powershell,因为这是原生 WS 技术,也可用于发送 HTTP POST。这里有一个简单的两行代码,将您的外部 IP 和当前时间记录到文件 C:\temp\debuglog.txt:
$response = Invoke-WebRequest -UseBasicParsing -Uri http://icanhazip.com -Method get
"{0};{1}" -f $response.content.trim(), (get-date -format u) | out-file -filepath 'C:\temp\debuglog.txt' -append
将其放入以 .ps1 结尾的文件中并通过任务计划程序运行它:
Program: powershell
Arguments: -executionpolicy bypass C:\temp\debugscript.ps1