[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 求大神帮写一段关于网络验证时间的bat代码

bat运行后会从服务器端的特定ini或者txt文件的某一行取时间,把当前电脑时间转换成八位数,如果大于则继续运行下面的代码,如果服务器文本里面的小于当前电脑时间的8位数则停止运行。
例如服务器上的txt文本第1行的时间是20230809,现在的时间是20220809,这样的话就继续运行下面的代码。
可以有偿,邮箱sditwzh@126.com

本帖最后由 zaqmlp 于 2022-8-10 15:53 编辑

bat需存为ANSI/GB2312/GBK编码
  1. @echo off&cd /d "%~dp0"
  2. rem 截取第3行第2个字符之后内容
  3. set line=3
  4. set index=2
  5. set "url=http://www.xxx.com/yyy.txt"
  6. (echo;var http=new ActiveXObject^('Msxml2.XMLHTTP'^);
  7. echo;http.open^('GET', "%url%", false^);
  8. echo;http.send^(^);
  9. echo;WSH.echo^(http.ResponseText^);
  10. )>"%tmp%\j.j"
  11. for /f "tokens=1* delims=:" %%a in ('cscript -nologo -e:jscript "%tmp%\j.j"^|findstr /n .*') do (
  12.     if %%a equ %line% set serverdate=%%b
  13. )
  14. call set "serverdate=%%serverdate:~%index%%%"
  15. >"%tmp%\v.v" echo;WSH.echo Year(date) ^& right("0" ^& Month(date),2) ^& right("0" ^& Day(date),2)
  16. for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\v.v"') do set localdate=%%a
  17. echo;服务器日期:"%serverdate%"
  18. echo;本机日期:"%localdate%"
  19. if "%serverdate%" leq "%localdate%" (echo;时间过期&goto :end)
  20. echo;大于时运行的代码
  21. :end
  22. pause
  23. exit
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 sditwzh 于 2022-8-9 13:08 编辑

回复 2# zaqmlp


    可能我表达的不是太清楚,我的意思是利用域名访问这个txt,就比如我把这个txt文件放在网站的根目录底下,直接用域名http://www.xxxx.com/xxx.txt,能不能实现这样的访问。然后如果停止运行则提示时间过期再停止运行下面的代码。而且回显里面不显示时间,直接就是电脑时间小于txt里面的时间就提示验证通过然后继续执行,如果验证不通过就提示时间过期,然后停止执行

TOP

回复 3# sditwzh


    已修改
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 4# zaqmlp


如何把这一段回显隐藏掉,而且第一次运行可以,但是修改txt的时间后再次运行服务器时间还是修改前的,而且是能不能做到从txt文件的第几行第几个字符开始取时间,因为一个txt会记录多个时间,时间的前面会有文字名称。   
echo;服务器日期:%serverdate%
echo;本机日期:%localdate%

TOP

本帖最后由 zaqmlp 于 2022-8-9 14:43 编辑

回复 5# sditwzh


不想要就删除,显示出来是为了验证对不对,已修改
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 6# zaqmlp

我设置的是第三行第四个字符,运行后提示这个
服务器日期:"~4"
本机日期:"20220809"
请按任意键继续. . .

TOP

回复 7# sditwzh

网址或者txt上传网盘分享出来
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 8# zaqmlp

txt文本格式就是这样的

测试1,20000403
测试2,26482222
测试3,20230809

TOP

回复 9# sditwzh

网址或者txt上传网盘分享出来,不是原文件无法测试
或者改成,set line=2,set index=0,看看"服务器日期:"显示什么
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

本帖最后由 sditwzh 于 2022-8-10 15:54 编辑

回复 10# zaqmlp


你好,经过测试是我的txt文本编码出现问题了,现在是可以了,不过如果小于则停止运行,在哪个位置加一句提示呢?,比如小于就提示时间到。

还有就是在这个之前能不能再加上一个单独一行信息来显示某一行前几个字符。之后再去效验这个值大小

TOP

返回列表