查看: 2282|回复: 10
收起左侧

[其他] 批处理改错

[复制链接]
angelfan
发表于 2013-10-3 19:58:45 | 显示全部楼层 |阅读模式
请大伙指出这个批处理哪里错误并帮俺改正,谢谢啦^_^

运行出现死循环@_@

@echo off
color 0a
title 本批处理用于【Adobe Photoshop CS6 Extended GreenVersion By Ansifa (Built on 2012/7/16 1:09:57)】
pushd %~dp0

:run
call :vc2005
call :vc2008
call :common
call :checkreg

cd /d %~dp0Adobe Photoshop CS6
start Photoshop.exe

goto :eof

:common
if exist "%CommonProgramFiles%\Adobe" goto :eof
cd /d %~dp0Adobe Photoshop CS6\Required\
if exist common.pk ren common.pk common.exe & start /wait common.exe
ren common.exe common.pk
goto :eof

:checkreg
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Adobe\Photoshop\60.0" /v "CS6GreenVersion">nul 2>nul
if %errorlevel% == 0 (goto run) else (regedit /s i.reg)
goto :eof

:vc2005
set "HKLMU=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
reg query %HKLMU%\{710f4c1c-cc18-4c49-8cbf-51240c89a1a2}>nul 2>nul&&set VC2005=Microsoft Visual C   2005 Redistributable
if defined VC2005 (echo %VC2005% 已安装!&ping -n 3 127.1>nul) else (goto 2005Install)
:::::
goto:eof

:vc2008
set "HKLMU=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
reg query %HKLMU%\{1F1C2DFC-2D24-3E06-BCB8-725134ADF989}>nul 2>nul&&set VC2008=Microsoft Visual C   2008 Redistributable
if defined VC2008 (echo %VC2008% 已安装!&ping -n 3 127.1>nul) else (goto 2008Install)
:::::
goto:eof

:2005Install
echo 正在安装 Microsoft Visual C   2005 Redistributable
cd /d "%~dp0Adobe Photoshop CS6\vc2005sp1"
start /wait vcredist.msi /q
goto:eof

:2008Install
echo 正在安装 Microsoft Visual C   2008 Redistributable
cd /d "%~dp0Adobe Photoshop CS6\vc2008sp1"
start /wait vc_red.msi /q
goto:eof

:end
xiaoluo
发表于 2013-10-3 20:04:17 | 显示全部楼层
本帖最后由 xiaoluo 于 2013-10-3 20:07 编辑


goto :eof  的问题吗?

不懂这些。

%~dp0   是什么意思呢?

set "HKLMU=HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"

可以这样写?
请高手解释下楼主的问题吧。
loms126
发表于 2013-10-3 20:08:06 | 显示全部楼层
最后3个goto:eof,少空格了。
angelfan
 楼主| 发表于 2013-10-5 20:33:19 | 显示全部楼层

RE: 批处理改错

xiaoluo 发表于 2013-10-3 20:04

goto :eof  的问题吗?

%~dp0是批处理文件所在路径
angelfan
 楼主| 发表于 2013-10-5 20:36:59 | 显示全部楼层

RE: 批处理改错

loms126 发表于 2013-10-3 20:08
最后3个goto:eof,少空格了。

改正了,问题依然存在,不知道还有哪里错误。批处理在第一次运行是正常的,第二次就出错了,像附件中:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x
xiaoluo
发表于 2013-10-5 20:47:30 | 显示全部楼层
angelfan 发表于 2013-10-5 20:33
%~dp0是批处理文件所在路径

谢谢了。
limy
发表于 2013-10-5 22:33:27 | 显示全部楼层
@echo off删了,或者改成@echo on就可以看到运行过程中的提示了,方便改错。
提供个可能性,你出错的是不断循环标签:vc2005,:vc2008,那就应该有地方又跳回标签:run,看了下:checkreg里有一句if %errorlevel% == 0 (goto run)判断前一句运行结果,你看看是不是他前面出了问题
肉包儿
发表于 2013-10-6 08:52:04 | 显示全部楼层
checkreg节直接导入不就得了,代码太冗余
小松鼠
发表于 2013-10-6 10:28:16 | 显示全部楼层

顺路帮忙,谢谢!!

想做个批处理。谢谢!!

xp系统 现在只有一个盘 c:

在C:建立一个目录 虚拟成d: 并放在启动项,这样 一进系统 就有了d:


xiaoluo
发表于 2013-10-6 14:05:30 | 显示全部楼层
去掉第一个 goto :eof

?
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2025-1-13 10:52 , Processed in 0.127376 second(s), 17 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表