2011-10-01 122 views
1

Oo所以我创建了一个批处理文件。它在Windows 7中工作正常,但是当我在Vista中测试它仍然可以工作,但它会跳过:DELETE标签,它将直接进入:开始请帮助标签 ? ,谢谢你的时间。你如何让这个批处理文件在Vista中工作?

:: Batch file Created By Ookami 
:: 
:: Copyright (c) 2011 NearFang™ 
:: 
:: Facebook: http://www.facebook.com/00k4MI 
:: 
:MAIN 
@ECHO OFF 
mode con:cols=43 lines=10 
color 5B 
title MCTool 

echo %~n0%~x0 started from Directory: %~d0%~p0 > nul 
%~d0 
cd %~d0%~p0 

:Menu 
echo MC Batch Tool Copyright (c) 2011 Ookami. 
echo ----------------------------------------- 
echo [OPTIONS]: 
echo ========================================= 
echo [1]Run minecraft installer 
echo [2]Restore .minecraft 
echo ========================================= 
set /p choice=Enter Option: 
if %choice% == 1 goto 1 
if %choice% == 2 goto 2 
GOTO Menu 

:1 
IF NOT EXIST .minecraft GOTO ERROR2 
IF NOT EXIST %APPDATA%\.minecraft GOTO BEGIN 
IF EXIST %APPDATA%\.minecraft GOTO DELETE 
IF EXIST .minecraft GOTO BEGIN 

:BEGIN 
XCopy ".minecraft" "%appdata%\.minecraft" /S /E /I /Y 
cls 
echo Pre-Modded minecraft installed... 
echo. 
pause 
EXIT 

:DELETE 
cls 
echo An existing .minecraft folder was found! 
echo. 
echo Create backup, before deletion? 
SET /P input=Yes or No (Y/N): 
IF '%input%' == 'Y' (
GOTO BACKUP 
) 
IF '%input%' == 'y' ( 
GOTO BACKUP 
) 
IF '%input%' == 'N' ( 
GOTO DELNOW 
) 
IF '%input%' == 'n' ( 
GOTO DELNOW 
) ELSE (
GOTO ERROR 
) 

:BACKUP 
IF EXIST mcbak\.minecraft RD mcbak\.minecraft /S /Q 
XCopy "%appdata%\.minecraft" "mcbak\.minecraft" /S /E /I /Y /Q 
cls 
echo Copied Folder To: 
echo. 
echo %~d0%~p0 
echo. 
echo successfully completed! 
echo. 
pause 
cls 
echo starting deletion process... 
RD /S /Q "%APPDATA%\.minecraft" 
echo. 
echo .minecraft folder has been Deleted 
echo. 
pause 
cls 
echo Now installing Pre-Modded minecraft folder 
XCopy ".minecraft" "%appdata%\.minecraft" /S /E /I /Y /Q 
echo. 
echo successfully completed... 
echo. 
pause 
EXIT 

:DELNOW 
cls 
echo Starting Deletion Process... 
RD /S /Q "%APPDATA%\.minecraft" 
echo. 
echo .minecraft folder has been Deleted 
echo. 
pause 
cls 
echo Now installing Pre-Modded minecraft folder 
XCopy ".minecraft" "%appdata%\.minecraft" /S /E /I /Y /Q 
echo. 
echo successfully completed... 
echo. 
pause 
EXIT 

:ERROR 
echo. 
echo Your input was invalid 
echo. 
PAUSE 
GOTO DELETE 

:ERROR2 
cls 
echo .minecraft folder was not found! 
echo. 
echo Note: mctool must be next to .minecraft 
echo. 
PAUSE 
EXIT 

:2 
IF NOT EXIST mcbak\.minecraft GOTO noget 
IF NOT EXIST %APPDATA%\.minecraft GOTO nowget 
IF EXIST %APPDATA%\.minecraft GOTO DELNOW 
IF EXIST mcbak\.minecraft GOTO nowget 

:nowget 
XCopy "mcbak\.minecraft" "%appdata%\.minecraft" /S /E /I /Y 
cls 
echo Minecraft has been Restored successfully 
echo. 
pause 
exit 

:DELNOW 
cls 
RD /S /Q "%APPDATA%\.minecraft" 
GOTO nowget 

:noget 
cls 
echo No backups found or have been created 
echo. 
echo Note: mctool must be next to mcbak folder 
echo. 
pause 
exit 

回答

3

尽量把%appdata引号内,就像这样:IF EXIST "%APPDATA%"\.minecraft GOTO DELETE

+1

TY !!!起初它并没有帮助我最终不得不添加“到每一个IF声明,但我只想到它导致你为它带来了一个强大的cookie xD! – OoKami

相关问题