edison_zhu说道:
你好,请教一个关于VBS或批处理自我升级的代码。
批理理里简单的写了一下,感觉就是很简陋,看看你这边有没有更好的代码。
1.思路
批处理运行时,检测局域网盘中的文件的日期,如果较新时,运行更新代码
2.代码内容
对比两文件创建立时间日期,COPY较新的替换旧文件,运行
问题
1.如何对比两文件
2.批处理自身运行时,如何替换自己
此时有个思路,使用延迟,在%TEMP%下结束批处理当前进程,COPY新文件到旧文件路径,结束替换进程。
@echo off
::获取文件路径
set lj=%~dp0
::第一个文件为身
set file_1=”%~n0.cmd”
::第二个文件
set file_2=”\\192.168.3.222\t$\dls.cmd”
::调用时间对比
call :smile %file_1% %file_2%
pause & exit
rem 判断时间
:smile
if “%~t1″==”%~t2” (
echo 无需更新
goto one
) else (
echo 需要更新
goto gx
)
:gx
echo 正在更新…
ren %file_1% old%file_1%
copy “\\192.168.3.222\t$\dls.cmd” %lj% /y
call %lj%\dls.cmd
exit
:one
echo 文件没有更新
pause