[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
  1. @echo off&&setlocal enabledelayedexpansion
  2. set qx=20221015
  3. wget --user-agent="Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.3) Gecko/2008092416 Firefox/3.0.3" --no-check-certificate -c -q -N -t 0 -O 1.yyy "www.bathome.net/thread-64050-1-1.html"
  4. for /f "tokens=2 delims= " %%i in ('findstr /i "GMT+8" 1.yyy') do set "rq=%%i"
  5. del /q *.yyy>nul 2>nul
  6. set rq=!rq:-=!
  7. if !rq! leq %qx% (goto bq) else (echo 程序使用到期,不再运行&&ping /n 5 127.1>nul&&exit)
  8. :bq
  9. echo 欢迎使用
  10. pause
复制代码
仅写了验证时间的部分,当设定期限QX后,如果当前日期小于等于期限是允许执行的。缺点,1依靠网络时间(本例采用本论坛时间)2需要外置程序 wget,根据系统是多少位,需要不同版本。
wget 地址 http://bcn.bathome.net/s/tool/index.html?key=wget
如果采用,希望你下功夫另找一个国家级省级这种会多年在线的带服务器时间的网页地址,替换本例中的地址。
目的,学习批处理

TOP

回复 4# Batcher


    请大神看看给个好的解决方案。可以付费

TOP

本帖最后由 sditwzh 于 2022-10-17 17:25 编辑

回复 4# Batcher


@echo off

@mode con lines=28 cols=60

echo.

echo 正在验证软件授权信息,请稍候!

ping 127.1 -n 2 >nul

echo.
rem 截取第x行内容
set line=1
set "url=http://10.214.195.222/date.txt"
(echo;var http=new ActiveXObject^('Msxml2.XMLHTTP'^);
echo;http.open^('GET', "%url%", false^);
echo;http.send^(^);
echo;WSH.echo^(http.ResponseText^);
)>"%tmp%\j.j"
for /f "tokens=1* delims=:" %%a in ('cscript -nologo -e:jscript "%tmp%\j.j"^|findstr /n .*') do (
    if %%a equ %line% set name=%%b
)

set "name=%name:~0,6%"
echo;授权单位:%name%

echo.
rem 截取第x行第n个字符之后内容
set line=1
set index=14
set "url=http://10.214.195.222/date.txt"
(echo;var http=new ActiveXObject^('Msxml2.XMLHTTP'^);
echo;http.open^('GET', "%url%", false^);
echo;http.send^(^);
echo;WSH.echo^(http.ResponseText^);
)>"%tmp%\j.j"
for /f "tokens=1* delims=:" %%a in ('cscript -nologo -e:jscript "%tmp%\j.j"^|findstr /n .*') do (
    if %%a equ %line% set serverdate=%%b
)
call set "serverdate=%%serverdate:~%index%%%"
>"%tmp%\v.v" echo;WSH.echo Year(date) ^& right("0" ^& Month(date),2) ^& right("0" ^& Day(date),2)
for /f %%a in ('cscript -nologo -e:vbscript "%tmp%\v.v"') do set localdate=%%a
if "%serverdate%" leq "%localdate%" (
echo;您的授权已过期。
echo.
echo 请您在授权期内使用&goto :end)

echo 您的授权在有效期内可以正常使用。

ping 127.1 -n 3 >nul

echo.

echo 正在启动

echo.

start  D:\dev_tool\nginx-1.9.9\nginx.exe

ping 127.1 -n 5 >nul
exit
:end
echo.
pause
exit


这个方法有时候出现第一次可以读取txt信息,但是后面就算把txt信息改了,再次运行还是能执行,无论怎么改读取到的信息都是第一次的,所以想看看又没有别的方式,或者建立一个mdb数据库从数据库读取。再或者有其他方法。还有能不能利用读取文件名称的方式来实现,例如123文件夹下有1个文件夹一个txt,文件夹名称是客户名称,txt文件名是对应的授权日期。这样再取这个txt文件名和电脑时间做对比。

TOP

回复 3# sditwzh


    想看一下你是怎么对比的,以及如何在此基础上进一步优化。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# Batcher


    没有代码,我是想找大神给写个,我写的那个利用txt那个不好用

TOP

回复 1# sditwzh


    请把你的代码发出来并说明一下具体啥问题
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表