- 帖子
- 32
- 积分
- 51
- 技术
- 0
- 捐助
- 0
- 注册时间
- 2020-12-4
|
本帖最后由 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文件名和电脑时间做对比。 |
|