Board logo

标题: [已解决]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 编辑
  1. @echo off
  2. set "dns=DNS服务器ip"
  3. set "adsl=宽带连接名"
  4. set "user=用户名"
  5. set "psw=密码"
  6. for /f %%a in ("A\A.exe") do set "Asize=%%~za"
  7. for /f %%b in ("B\A.exe") do set "Bsize=%%~zb"
  8. if "%Asize%" neq "%Bsize%" copy "B\A.exe" "A\A.exe" /y
  9. :loop
  10. set n=0
  11. ping -n 2 %dns% >nul&&goto :check
  12. :re
  13. rasdial "%adsl%" %user% %psw%&&goto :check||set /a n+=1
  14. if %n% leq 3 goto :re
  15. :check
  16. (tasklist|findstr /i "A.exe">nul)||(taskkill /f /im "C.exe"&start "" "A\A.exe")
  17. echo;计时15min,请稍后……
  18. 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"&copy "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://www.bathome.net/) Powered by Discuz! 7.2