标题: [已解决]30元求脚本,自动运行和批处理 [打印本页]
作者: pinghoo 时间: 2015-8-30 02:23 标题: [已解决]30元求脚本,自动运行和批处理
本帖最后由 pinghoo 于 2015-8-30 16:57 编辑
1、对比A文件夹A.exe文件与B文件夹A.EXE的文件大小(CRC校验也可以)是否吻合,如果不同则覆盖将B文件夹覆盖至A文件的A.EXE;
2、ping DNS服务器,ping得通直接跳第4步;
3、如果ping不通则进行宽带连接(尽量不用第三方插件),拨号失败三次暂停批处理(保留MSDOS窗口),后至第4步;
4、检测A.EXE是否运行,如果运行则等待15分钟;如果没有运行,则KILL C.EXE进程后,执行A.exe;
循环执行2-4步骤;
A.exe若有保护,不能KILL但是在任务管理器里有可以结束进程,这种有没有其他解决方案,最好能一起解决。
联系QQ:27505037
支付方式:微信、支付宝、Q币都行
作者: pcl_test 时间: 2015-8-30 08:25
本帖最后由 pcl_test 于 2015-8-30 10:19 编辑
- @echo off
- set "dns=DNS服务器ip"
- set "adsl=宽带连接名"
- set "user=用户名"
- set "psw=密码"
- for /f %%a in ("A\A.exe") do set "Asize=%%~za"
- for /f %%b in ("B\A.exe") do set "Bsize=%%~zb"
- if "%Asize%" neq "%Bsize%" copy "B\A.exe" "A\A.exe" /y
- :loop
- set n=0
- ping -n 2 %dns% >nul&&goto :check
- :re
- rasdial "%adsl%" %user% %psw%&&goto :check||set /a n+=1
- if %n% leq 3 goto :re
- :check
- (tasklist|findstr /i "A.exe">nul)||(taskkill /f /im "C.exe"&start "" "A\A.exe")
- echo;计时15min,请稍后……
- ping -n 901 0 >nul&goto :loop
复制代码
作者: pinghoo 时间: 2015-8-30 09:53
回复 2# pcl_test
好的,有些需要麻烦你修改下,一些如账号、密码、DNS这些的独立出来
作者: pinghoo 时间: 2015-8-30 09:56
回复 2# pcl_test
XCOPY 比COPY哪个更好用,我需要覆盖的,A\B文件夹都存在A.exe文件,
作者: pinghoo 时间: 2015-8-30 09:56
怎么支付给你,短给我。
作者: pcl_test 时间: 2015-8-30 10:21
回复 4# pinghoo
回复 3# pinghoo
已修改,只是复制文件,copy即可,参数/y表示静默覆盖
作者: pinghoo 时间: 2015-8-30 11:12
创建时间 付款时间 结束时间
2015.08.30 11:11:33 2015.08.30 11:11:39 2015.08.30 11:11:39
已经转给你了,请查收!
作者: pinghoo 时间: 2015-8-30 18:29
回复 6# pcl_test
批处理还是有些问题,宽带连接错误3次后,不会暂停批处理,而是直接运行A。exe了!
作者: pcl_test 时间: 2015-8-30 18:42
本帖最后由 pcl_test 于 2015-8-30 18:44 编辑
回复 8# pinghoo
if %n% lss 3 (goto :re) else pause
作者: pinghoo 时间: 2015-8-30 22:04
if "%Asize%" neq "%Bsize%" copy "B:\A.exe" "A:\A.exe" /y
如果目标文件在使用,无法覆盖能否重启电脑?这个能改么?其他都OK了,很完美
作者: pinghoo 时间: 2015-8-30 22:04
回复 6# pcl_test
if "%Asize%" neq "%Bsize%" copy "B:\A.exe" "A:\A.exe" /y
如果目标文件在使用,无法覆盖能否重启电脑?这个能改么?其他都OK了,很完美
作者: pcl_test 时间: 2015-8-31 01:00
回复 11# pinghoo
先结束A,再替换即可
作者: pinghoo 时间: 2015-8-31 08:24
回复 12# pcl_test
程序有保护,kill不掉,必须重启才可以,追加10元,
if "%Asize%" neq "%Bsize%" copy "B\A.exe" "A\A.exe" /y我修改为终止后替换,但是有的时候需要重启,能否再提供一个解决方案
if "%Asize%" neq "%Bsize%" taskkill /f /im "C.exe"© "B\A.exe" "A\A.exe" /y
作者: pcl_test 时间: 2015-8-31 10:30
if "%Asize%" neq "%Bsize%" (tasklist|findstr /i "A.exe">nul&&shutdown -r -t 0||copy "B\A.exe" "A\A.exe" /y)
作者: pinghoo 时间: 2015-8-31 10:36
回复 14# pcl_test
知道了,对了,能不能先终止,可以终止的话先终止进程后替换文件,终止不成功则重启电脑,重启后无该进程直接替换!
作者: pcl_test 时间: 2015-8-31 10:43
回复 15# pinghoo
if "%Asize%" neq "%Bsize%" (
taskkill /f /im "A.exe"
tasklist|findstr /i "A.exe">nul&&shutdown -r -t 0||copy "B\A.exe" "A\A.exe" /y
)
作者: pinghoo 时间: 2015-8-31 12:25
回复 16# pcl_test
好的,我试试,如果有问题再麻烦你帮忙修改了。已经转过去给你啦!
作者: pinghoo 时间: 2015-8-31 13:01
回复 14# pcl_test
帅哥,不行,加这行代码后,BAT闪退。
作者: pinghoo 时间: 2015-8-31 13:10
找到问题啦!3Q··我黏贴的时候多复制了&进去||和&判断冲突
作者: pinghoo 时间: 2015-9-1 00:35 标题: test
本帖最后由 pinghoo 于 2015-9-1 01:21 编辑
没事了!刚才发错了
作者: pinghoo 时间: 2015-9-4 19:02
已经解决了没问题了!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |