[已解决]如何判断软件版本号的高与底
本帖最后由 dnvplj 于 2016-4-21 10:32 编辑当前Soft文件夹下:有一个“1.exe”可执行软件,版本号为:2012;还有一个“11.TXT”文本文件(里面的内容只有:“2013”这一行数字)。
请问各位朋友:1、如何判断2013比2012版本高,如果高就执行下载,否则:提示”退出“,2、如果2个版本号都是2012就提示:当前以是最高版本。 判断高低多麻烦2则不一样就升级这样简单点 回复 1# dnvplj
中级会员都不好好阅读帮助文件! 给你点示例代码吧.
Global $filePath=@SystemDir&"\ntdll.dll"
Global $nameArray=["Comments", _ ;(注释)
"InternalName", _ ;(内部名称)
"ProductName", _ ;(产品名称)
"CompanyName", _ ;(公司名称)
"LegalCopyright", _ ;(法律版权)
"ProductVersion", _ ;(产品版本)
"FileDescription", _ ;(文件说明)
"LegalTrademarks", _ ;(法律商标)
"PrivateBuild", _ ;(专用编译)
"FileVersion", _ ;(文件版本)
"OriginalFilename", _ ;(原始文件名)
"SpecialBuild"] ;(特别编译)
For $i = 0 To UBound($nameArray)-1
Local $tempStr=FileGetVersion($filePath,$nameArray[$i])
If $tempStr<>"" Then ConsoleWrite($nameArray[$i]&@TAB&$tempStr&@CRLF)
Next
Local $fileVersion=FileGetVersion($filePath,"FileVersion")
MsgBox(0,0,$fileVersion)
有学了一招~{:face (197):} 回复 3# lanfengc
只是在论坛时间长了,不代表什么,没看明白2个文件是怎么对比的,能详解一下吗? 回复 5# dnvplj
是我的理解有問題嗎??
1、如何判断2013比2012版本高,如果高就执行下载
不就是 IF目前版本 > 最新版本 2013 跟 2012 不能比大小嗎?? 回复 6# kk_lee69
是呀,怎么读取“2013”和“2012”进行判断呢。 回复 7# dnvplj
3樓的lanfengc 不是給了一個方法?? 回复 7# dnvplj
读取网络txt文件:
$url_up="ftp://test:test@192.168.1.254/New.txt"
$dData = InetRead($url_up,1)
$sData = BinaryToString($dData)
读取本exe文件版本
$ver = FileGetVersion(@AutoItExe)
2者比较
if $sData<>'' and StringInStr($sData,$ver)=0 then
Local $r=msgbox(262144+4,'检测到新版本','是否立即更新?',10)
if $r<>7 then
FileDelete(@AutoItExe&'.bak')
Run('cmd /k ren ' & '"'&@AutoItExe&'"' & ' ' &@ScriptName&'.bak','',@SW_HIDE)
while FileExists(@AutoItExe)
sleep(100)
wend
InetGet("ftp://test:test@192.168.1.254/AAA.exe",@AutoItExe,1)
do
sleep(100)
until FileExists(@AutoItExe)
run(@AutoItExe)
endif 感谢楼上几位朋友的回复,问题解决了。
页:
[1]